加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 7864 個閱讀者
04:00 ~ 4:30 資料庫備份中,需等較久的時間,請耐心等候
 
發表文章 發表投票 回覆文章
  可列印版   加為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.018273 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言