簡體   English   中英

Java If-Statement 簡寫形式

[英]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.

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