簡體   English   中英

Java為什么不允許在條件語句中創建整數

[英]Why doesn't Java allow creating integers inside a conditional statement

當我嘗試以下代碼時,它給我一個錯誤

int a =1,b=2;
if(a < b)
 int c = 10;

但是如果我做同樣的事情,添加花括號,它會很好地工作

int a =1,b=2;
if(a < b)
{
 int c = 10;
}

但是我很好奇為什么Java不允許在if條件內創建變量。

與整數無關,只是您不能在沒有括號的if語句下聲明。 請注意,這將是毫無意義的,因為這將意味着聲明將位於if語句的本地,而if語句也將具有一條指令(這是不帶括號的意思),這意味着將永遠不會使用此聲明。

使它更具“視覺效果”:

if (condition) instruction;

相當於

if (condition) {
    instruction;
}

所以你的情況

if(a < b) {
   int c = 10;
}

是沒有意義的代碼,因為將永遠不會使用c 因此,Java不允許編寫

if(a < b) int c = 10;

帶括號的if語句將允許您在塊中包含任何內容(甚至根本沒有內容),但是如果您在不使用聲明的變量的情況下進行聲明,則仍會收到警告。

您的int c = 10; 應該是一個塊局部變量。 您只能在內部有一個塊(或某些控制結構,如for ),這些塊用curlies表示。 int c = 10; 不是一個障礙。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM