所以我試圖在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");
}
}
}
uj5u.com熱心網友回復:
如果我們final在if-else陳述句之外宣告一個變數并在 -branch 中初始化它if,我們也必須在相應的-branch 中初始化它else。如果不else存在 -branch,我們必須創建一個,否則變數未初始化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");
}
}
}
Ideone demo
uj5u.com熱心網友回復:
閏年變數可能并不總是被初始化
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");
}
}
}
uj5u.com熱心網友回復:
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");
}
}
}
uj5u.com熱心網友回復:
您必須在變數名稱之前洗掉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");
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/351899.html
標籤:爪哇
上一篇:字串連接是否是編譯時常量?
下一篇:如何在JUnit測驗中重用物件?
