[英]Java If-Statement short form
我找到了以下代碼:
static void CreatePartys(int n)
{
int num = 0;
int[] e = new int[n];
e[num] = n;
while (true)
{
int part = 0;
count = count +1;
while (num >= 0 && e[num] == 1)
{
part += e[num];
num--;
}
if (num < 0) return;
e[num]--;
part++;
while (part > e[num])
{
e[num+1] = e[num];
part = part - e[num];
num++;
}
e[num+1] = part;
num++;
}
}
我被困在 if 語句中,我以前從未見過這種情況,甚至在 Java 書中也沒有見過。
if (num < 0) return;
它返回什么? 真、假、數字?
在if之后跟在一個語句之后。 以下是有效代碼:
if (a > 5) b = c + 2;
這里b = c + 2; 是一個正常的語句。
但是語句也可以用大括號定義。 您也可以在普通代碼中使用大括號,如下所示:
long i = 3;
long j = 4;
long k = 9;
{ i = j + 7; }
{ i = i * k + 123; }
i = 345;
{ k = j * 10; }
{
i = 234 * j;
k = 12 * j;
System.out.println(i);
}
這種形式通常沒有意義,因為它使代碼難以理解:) 但這是可以正確編譯的有效代碼。
你經常在if之后看到的只是像上面那樣的語句。
為什么我們經常在if之后看到大括號? 如果只執行了一個語句之后。 如果你有類似的代碼
if (a > 5)
b = c + 2;
k = i + 3;
那么語句b = c + 2; 如果條件a > 5成立,將被執行。 但是語句k = i + 3; 將始終執行,獨立於a > 5 。
如果您希望僅當a > 5成立時才執行這兩個語句,則使用大括號:
if (a > 5) {
b = c + 2;
k = i + 3;
}
當您想根據if 只執行一條語句時,可以省略大括號。 但是您項目中的隊友可能不確定您是否有意省略大括號,或者這只是一個錯誤。 為了避免任何此類疑問,許多項目中的編碼指南要求if之后的任何語句都必須使用大括號,無論語句多么簡單。
簡短說明:
如果你只寫 return; 您可以停止當前方法的執行。
如果語句后面有一個單獨的語句,則它們不需要大括號,例如
if(2<variable)
System.out.println("inIf")
System.out.println("outsideIf")
所以。 if (num < 0) return;
只是意味着:當number小於0時停止執行方法不會調用方法中的其他代碼
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.