加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 7866 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   

头像
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: *
推文 x 鲜花 x
分享: 转寄此文章 Facebook Plurk Twitter 版主评分 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[Java][精华] 如何精简此猜数字程式<已解决>

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容


此文章被评分,最近评分记录
财富:30 (by codeboy) | 理由: 自我成长搂..^^


献花 x0 回到顶端 [楼 主] | Posted:2007-01-05 12:43 |
boysxmen
数位造型
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x4
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

复制程式
import java.io.*;

public class Guess {
       public static void main(String[] args) {
              byte[] b = new byte[10];
              int g = 0;
              int index = 0;
              int x = 0;
              String sbuf = null;
              System.out.println("Pick a number between 1 and 100 :");
              while(true) {
                     try {
                            g = System.in.read();
                     }catch(IOException ex) {ex.printStackTrace();}
                     switch(g) {
                            case '\n':
                                   break;
                            case '\r':
                                   sbuf = new String(b, 0, index);
                                   x = Integer.parseInt(sbuf);
                                   if(x < 79) {
                                          System.out.println("Your Guess " + x + '\n' + "HIGHER" );
                                          index = 0;
                                          break;
                                   }else if(x > 79) {
                                          System.out.println("Your Guess " + x + '\n' + "LOWER");
                                          index = 0;
                                          break;
                                   }else {
                                          System.out.println("Your Guess " + x + '\n' + "CORRECT");
                                          index = 0;
                                          return;
                                   }
                            default:
                                   b[index++] = (byte)g;
                     }       
              }
       }
}

很简单的,关键是把输入转换成int 的过程,还有就是理解in.read是行缓冲的.


献花 x1 回到顶端 [1 楼] From:陕西 | Posted:2007-01-07 18:21 |
boysxmen
数位造型
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x4
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

你这个程序有几个基本的语法错误,所以不能Compile

1> 方法内部变量不能声明为private。
2> main()自身就是方法,不能在它内部又建立方法。
3> 方法内部的变量必须显式的初始化。
这段程序只作修改意义不大,根本无法达到期望的运行效果。建议重写,或参考2楼的代码,把答案改成随机数。基本实现不用变。


献花 x1 回到顶端 [2 楼] From:陕西 | Posted:2007-01-09 20:04 |
独吾洋 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x140
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用boysxmen于2007-01-9 20:04发表的 :
你这个程序有几个基本的语法错误,所以不能Compile

1> 方法内部变量不能声明为private。
2> main()自身就是方法,不能在它内部又建立方法。
3> 方法内部的变量必须显式的初始化。
.......

谢谢你的指导!

后来我自己跟随着老师的范例成功的做出来
只是现在又有另外个小问题
请问我现在修改后的文章内容 程式如何化二为一呢?


献花 x0 回到顶端 [3 楼] From:澳洲 | Posted:2007-01-10 17:44 |
boysxmen
数位造型
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x4
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

我机器上没有你的相关包,所以没办法运行,不过这样改可以compile通过。
  把你的Anwser类中的方法直接定义到GuessingGame中,不知道你是不是这个意思。
复制程式
import abr.srw.*;
import java.io.*;

public class GuessingGame{
       public static void main(String[] args) throws Exception{
              SimpleReader in       = new SimpleReader();
              SimpleWriter out = new SimpleWriter();
              
              int bet = 100;
              
              roll();
              
               while(bet > 0){
                      
                      out.print("Pick a random number between 1 to 100: ");
                     int guess = in.readInt();
                      
                     if(guess < getNum()){
                             bet= bet - 1;
                             out.println("Higher.");
                             out.println("Bet= " + bet); 
                             }
                      else if(guess > getNum()){
                             bet= bet - 1;
                             out.println("Lower.");
                             out.println("Bet= " + bet); 
                             }
                      else{
                             out.println("Correct! :)");
                             out.println("Bet= " + bet);
                             break;
                      }
               }
        }
        
        private static int num;
        
        public static void roll() {
              num = (int)(Math.random() * 100) + 1;
        }
       
        public static int getNum(){
              return num;
        }
}

此文章被评分,最近评分记录
财富:50 (by codeboy) | 理由: 感谢提供喔..^^


献花 x1 回到顶端 [4 楼] From:陕西 | Posted:2007-01-11 11:59 |
独吾洋 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x140
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用boysxmen于2007-01-11 11:59发表的 :
我机器上没有你的相关包,所以没办法运行,不过这样改可以compile通过。
  把你的Anwser类中的方法直接定义到GuessingGame中,不知道你是不是这个意思。
[code]import abr.srw.*;
import java.io.*;

.......

是的
就是那个意思

成功了! 表情
谢谢

可以再请问一个问题吗...
为什么要在private int num; 和public void roll() 中间加 "static" ?


献花 x0 回到顶端 [5 楼] From:澳洲 | Posted:2007-01-11 18:30 |
boysxmen
数位造型
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x4
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

static 修饰的方法不需new出对象就可以直接调用,称为静态方法。


献花 x1 回到顶端 [6 楼] From:陕西 | Posted:2007-01-11 19:25 |
独吾洋 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x140
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用boysxmen于2007-01-11 19:25发表的 :
static 修饰的方法不需new出对象就可以直接调用,称为静态方法。

嗯嗯

了解了

谢谢你的解答

我真是受益匪浅 ^^


献花 x0 回到顶端 [7 楼] From:澳洲 | Posted:2007-01-14 11:53 |
overing 手机
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x55
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

补一下...
static加在属性(类别变数)上面称做 "静态变数"
会由所有此类别产生之物件共用同一份资料


Zippy G2 600W
Intel C2Q Q9550
Gigabyte GA-X48-DQ6
Gigabyte GV-NX96T512H-B
G-skill pi 1100MHz 2Gx4
ACARD ANS-9010 32GB (Windows7 10sec boot!!)
WD 150GB(WD1500ADFD)/640GB(6400AASK)
献花 x0 回到顶端 [8 楼] From:未知地址 | Posted:2008-07-03 01:29 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.021132 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言