![](/img/trans.png)
[英]Object creating statement in Java doesn't allow to use a single-line loop. Why?
[英]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.