明天結貼!大哥們幫你看一段簡單代碼,注釋下


import java.io.*;
class Srdowhile
{
public static void main(String args[]) throws IOException  //這里throw干什么用的??
{
BufferedReader typein=new BufferedReader(new InputStreamReader(System.in));
                             //這句語法好復雜,用一個對象作構造函數的參數,來生成對象??
String legs;
int a,i=0,b;
System.out.println("請輸入雞兔的腳數:");
legs=typein.readLine();
b=Integer.parseInt(legs);
System.out.println("  "+"雞"+ "   "+"兔");
System.out.println("--------------------");
do
{
a=(b-4*i)/2;
System.out.print("   "+a);
System.out.print("    "+i);
System.out.println();
i++;
}while(4*i<=b);  //這個結束條件不是很理解
}
}

14 个解决方案

#1


樓主頭像真是令人不爽啊……

#2


 public static void main(String args[]) throws IOException  //這里throw干什么用的??

方法中可能會拋出IOException,但是我不想在當前方法中處理這個異常,於是我把他拋出去,讓這個方法的調用者處理,當然調用者也可以斷續向外拋,直到jvm。

#3




}while(4*i<=b);  //這個結束條件不是很理解

最為循環條件 保證 a>=0

#4


這個程序的目的是:我們任意輸入一個腳的數目,程序為我們枚舉出可能的雞兔數目組合。
程序用的枚舉方式是:
0只兔,?只雞
1只兔,?只雞
……
i只兔,?只雞

所以在進行下一輪計算之前,首先判斷是不是有可能出現i只兔,即4*i<=b.

我說明白了嗎?

#5


關於
BufferedReader typein=new BufferedReader(new InputStreamReader(System.in));
                             //這句語法好復雜,用一個對象作構造函數的參數,來生成對象??

我知道的不比api多,所以不說了。

#6


   都是正常的構造方法。至於為什么要這樣構造,去查API
                  InputStream isr=System.in;
Reader rd=new InputStreamReader(isr);
BufferedReader typein=new BufferedReader(rd);

#7


BufferedReader typein=new BufferedReader(new InputStreamReader(System.in));
System.in是標准輸入流,InputStream類型
InputStreamReader,把字節流轉成字符流
BufferedReader從字符流中讀取文本,起緩沖作用

#8


API都有詳細說明

#9


BufferedReader typein=new BufferedReader(new InputStreamReader(System.in));
讀取控制台輸入的數據(通過流)

public static void main(String args[]) throws IOException  //這里throw干什么用的??
是此方法里面有"檢查型異常",如果出現異常后此方法不做處理,將異常拋給調用者

#10


摟住好笨,
BufferedReader typein=new BufferedReader(new InputStreamReader(System.in)); 
讀取控制台輸入的數據(通過流) 

public static void main(String args[]) throws IOException  //這里throw干什么用的?? 
是此方法里面有"檢查型異常",如果出現異常后此方法不做處理,將異常拋給調用者

正解。

#11


這不是j2me

#12


 public static void main(String args[]) throws IOException  //這里throw干什么用的??

這句話是說在main函數中會遇到寫文件或者導入導出字符流這類的操作,有可能會出現傳輸失敗的現象,拋出異常,至少能夠打印異常信息,呵呵,自己的理解

BufferedReader typein=new BufferedReader(new InputStreamReader(System.in));
                             //這句語法好復雜,用一個對象作構造函數的參數,來生成對象??

此語句是創建一個字符流,字符流的內容是鍵盤輸入的內容,其中的new InputStreamReader(System.in)就是說在運行過程中,鍵盤上的內容,點擊鍵盤會顯示的內容。就相當於是系統的函數吧。

   do
        {
            a=(b-4*i)/2;
            System.out.print("   "+a);
            System.out.print("    "+i);
            System.out.println();
            i++;
        }while(4*i<=b);  //這個結束條件不是很理解



這里是do while循環和while do 循環的區別:
常見的while do 循環 如:   

int i = 0 ;
while(i < 0){ System.out.println("你好!"); i = i + 1;}

以上語句相當於 while(i < 0) do {System.out.println("你好!"); i = i+1;}


而類似本例子的do while 循環為

int i = 0 ;
do {System.out.println("你好!");}while(i<0);


區別在於前一種方法while do循環,會先判斷 while中的參數,然后再執行 {}中的內容,
而后者是先執行{} 中的語句,然后再判斷while中的參數是否符合,以此來決定是否進行下一次循環(再次執行{})。

打印的結果是不同的,第一種方法不打印 你好,第二種方法的do while 語句會打印一次 你好。

基礎的語法,多積累點吧





#13


什么時候才會激發這個異常處理程序

#14


哈哈哈哈

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com