[英]initializing final Boolean in if-Statement
所以我試圖在if語句中將leapyear設置為true,但是當我這樣做時,它告訴我第二個if語句中的leapYear沒有初始化。 謝謝你的幫助!
public class LeapYear {
public static void main(String[] args) {
int year = 1600 + (int)(Math.random() * 500);
final boolean leapYear;
if(year%4==0){
leapYear = true;
}
if (leapYear){
System.out.println(year + " leap");
} else {
System.out.println(year + " notleap");
}
}
}
如果我們宣布一個final
的變量外if
- else
語句來,並在初始化if
分枝,我們必須初始化它在相應的else
分枝為好。 如果else
分支不存在,我們必須創建一個,否則變量未初始化iff。 未輸入if
分支。
class Ideone {
public static void main(String[] args) {
int year = 1600 + (int)(Math.random() * 500);
final boolean leapYear;
if(year%4==0){
leapYear = true;
} else {
leapYear = false;
}
if (leapYear){
System.out.println(year + " leap");
} else {
System.out.println(year + " notleap");
}
}
}
閏年變量可能並不總是被初始化
public class LeapYear {
public static void main(String[] args) {
int year = 1600 + (int)(Math.random() * 500);
boolean leapYear = false;
if(year%4==0){
leapYear = true;
}
if (leapYear){
System.out.println(year + " leap");
} else {
System.out.println(year + " notleap");
}
}
}
public class LeapYear {
public static void main(String[] args) {
int year = 1600 + (int)(Math.random() * 500);
boolean leapYear = year % 4 == 0;
if (leapYear){
System.out.println(year + " leap");
} else {
System.out.println(year + " notleap");
}
}
}
您必須在變量名稱之前刪除final並將變量初始化為 false
例如
public static void main(String[] args) {
int year = 1600 + (int)(Math.random() * 500);
boolean leapYear = false;
if(year%4==0){
leapYear = true;
}
if (leapYear){
System.out.println(year + " leap");
} else {
System.out.println(year + " notleap");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.