係統粉 > 電腦問答 > 其他問答

已解決一個小錯誤,但我就是沒弄明白,求一大大解一下迷惑.

提問者:丨東方灬澀狼  |  瀏覽次  |  提問時間:2017-02-11  |  回答數量:2

一個小錯誤,但我就是沒弄明白,求一大大解一下迷惑. 這是我用記事本寫的一段java代碼,在DOS下編譯後出現一個錯誤,可能尚未初始化變量a,b,c.後來我將變量初始化為0後就變譯成功了,但是我另一段和這段代碼差不多的代碼卻不需要初始化,這是為什麼?需要初始化的代碼如下:import java.util.Scanner;public class Sy{public static void main(String[] args){ Scanner input = new Scanner(System.in); double a,b,c; boolean bol = true; System.out.println(\"請用戶進行選擇 1.長方形 2.三角形\"); int i = input.nextInt(); do{ if(i==1){System.out.println(\"請輸入長方形的長:\");a = input.nextDouble();System.out.println(\"請輸入長方形的寬:\");b = input.nextDouble();if(a==b){ System.out.println(\"輸入錯誤,程序

已有2條答案
piaoyi5442

piaoyi5442

回答數:213  |  被采納數:8

public class Sy{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
double a,b,c;
boolean bol = true;

System.out.println("請用戶進行選擇 1.長方形 2.三角形");

int i = input.nextInt();

do{
if(i==1){
System.out.println("請輸入長方形的長:");
a = input.nextDouble();
System.out.println("請輸入長方形的寬:");
b = input.nextDouble();
if(a==b){
System.out.println("輸入錯誤,程序將結束!");
break;
}else{
c = a*b;
System.out.println("長方形的麵積是:"+c);
}

}else if(i==2){
System.out.println("請輸入三角形的底長:");
input.nextDouble();
System.out.println("請輸入三角的高:");
input.nextDouble();
c = a*b/2;
System.out.println("三角形的麵積是:"+c);
}else{
System.out.println("輸入錯誤,請重新輸入!");
bol = true;
}
System.out.println("繼續進行計算 是y 否n");
String str = input.next();
if(str.equals("y")){
bol = true;
}else if(str.equals("n")){
bol = false;
}else{
bol = true;
}
}while(bol);
}
}


你這裏沒有賦值 給a 和 b
肯定是會報錯的
而且下麵 緊接著做c = a*b/2; 也是不行的

而你的第二種方法 就賦值了所以可以正常編譯運行
2017-02-11 05:33:36
讚 21
度娘讓我打漢字

度娘讓我打漢字

回答數:14  |  被采納數:39

明白了,謝謝
2017-02-11 06:42:43
讚 1
相關問答
最新其他問答
解決方法