[英]error : variable c might not have been initialized
下面是一個簡單的程序,但是我不確定為什么編譯時會顯示錯誤:
class TwoControl {
public statis void main (String args[]) {
int num,A,C;
int B=5;
num = 1;
A=5;
if(num<A)
C=A+B;
System.out.print("C Value " + C);
}
}
可能有多種方法可以使該程序運行,但不確定為什么它不適用於上述編碼形式。
當我嘗試編譯它時,出現錯誤
Error : Variable C might not have been initialized System.out.print("C Value " + C);
是在編譯器編譯代碼時,它不會驗證控制語句嗎?
在上面的示例中,如果條件為true,那么將初始化或定義值C
,那么對於否定情況,編譯器是否拋出錯誤?
如果num> = A(情況相反),C將保持未初始化狀態。
您可以通過使用默認值定義C來修復它,例如int C = 0
您的變量C
僅在以下條件下初始化:
if(num<A)
C=A+B;
因此,如果條件為false
,則永遠不會初始化C。
擁有else子句或使用默認值對其進行初始化,即:
int num,A,C = 0;
加上Ori所說的,如果將C
作為類級別的變量,則編譯器會將其默認設置為0,但由於它是局部方法,因此需要對其進行初始化:
class TwoControl {
static int C;
public statis void main (String args[]) {
.....
這樣可以完美編譯。
聲明時初始化C
Int num,A,C = 0;
或在分配之前在if上放置else
if(num<A)
C=A+B;
else
C = 0;
System.out.print("C Value " + C);
}
在您的代碼段中,僅當條件num> A為true時,實例化了變量C,如果num> A,則Java編譯器在編譯時無法理解。 然后,編譯器會提示您不能使用C,因為它沒有被初始化,而只是被聲明了。 您可以通過以下方式初始化C來解決它:
int num,A,C=0;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.