顯示flag未初始化,求解
public class HelloWorld {
? ? public static void main(String[] args) {
int score = 94;
String sex = "女";
? ? ? ? String flag;
? ? ? ? if (score > 80){
? ? ? ? ? ? if (sex.equals("女")) {flag="進(jìn)入女子組決賽";
? ? ? ? ? ? } else {flag="進(jìn)入男子組決賽";}
? ? ? ? }
? ? ? ? System.out.println(flag);
}
}
2016-07-09
你這是作用域的問(wèn)題,你的flag賦值操作是在if的大括號(hào)內(nèi),而你的輸出操作是在if作用域(大括號(hào)外面),這明顯是要報(bào)錯(cuò)的;
給你一段測(cè)試代碼:
????????String a;
??????? int b=1;
??????? if(b==1){
??????????? a="hello";
??????????? System.out.println(a);
??????? }
??????? //System.out.println(a);
你可以分別注釋掉其中任意一個(gè)打印語(yǔ)句system.out.println,看看會(huì)有啥不同;
自己動(dòng)手,豐衣足食,求采納;
2016-07-05
前面的String flag=null;
2016-07-05
百度到一個(gè)答案,說(shuō):如果score<80,那么最后flag就只是被定義了卻沒(méi)有被賦值,所以最后無(wú)法輸出flag,程序會(huì)報(bào)錯(cuò)
2016-07-05
你那里少些了一個(gè)條件應(yīng)該這樣寫
public class HelloWorld {
? ? public static void main(String[] args) {
int score = 94;
String sex = "女";
? ? ? ? String flag;
? ? ? ? if (score > 80,sex==女){
? ? ? ? ?docment.write("進(jìn)入女子組決賽");
? ? ? ? ? ? } else {?
?docment.write("進(jìn)入男子組決賽");
}
? ? ? ? }
? ? ? ? System.out.println(flag);
}
}