簡體   English   中英

一行上有多個if語句

[英]Multiple if statements on one line

這樣的語句如何執行?

int x = 2, y = 3;

if (x != 0) if (x < 10) if (y < 10) {
    x++;
    y++;
    System.out.printf("X and Y are: %d, and %d", x, y);
}

如果可以編譯,它將完全像這樣執行:

if (x != 0) 
   if (x < 10) 
     if (y < 1o) {
        x++;
        y++;
        System.out.println(x, y);
     }

但是,它不是很可讀。 您可以通過使用邏輯運算符或適當的換行符和縮進來提高其可讀性。

像這樣:

int x = 2, y = 3;
if ((x != 0) && (x < 10) && (y < 10))
{
    x++;
    y++;
    System.out.println(x, y);
}

它的運行方式類似於Nested if 如果使用條件AND,您為什么不首先檢查所有條件。 這樣,您就不需要其他人了。

但是,如果每個括號都帶有括號,則是一個好習慣。 這樣,當將來代碼發生更改時,它的可讀性和錯誤率就會降低

if()if()if()只是簡寫而已

if(x != 0){
    if(x < 10){
        if(y < 1o){
            x++;
            y++;
            System.out.println(x, y);
        }else{}
    }else{}
}else{}

它們是嵌套的。 基本上,花括號對於一行語句塊是可選的。 我假設y < 1o應該是y < 10 ,而且您的println看起來可疑。

if (x != 0) {
  if (x < 10) {
    if (y < 10) {
      x++;
      y++;
      // System.out.println(x, y);
      System.out.println(Integer.toString(x) + " " + y);
    }
  }
}

您當然可以將它們與an and like合並為一個if (甚至一行)

if (x != 0 && x < 10 && y < 10) {
  System.out.printf("%d %d%n", x++, y++);
}

這類似於

if (x != 0) {
   if (x < 10) {
      if (y < 10) {
        x++;
        y++;
        System.out.println(x, y);
      }
   }
}

你可以用另一種方式寫

if((x != 0) && (x < 10) && (y < 10)) {
   x++;
   y++;
   System.out.println(x, y);
}

只需使用&&運算符

int x = 2, y = 3;
if (x != 0 && x < 10 && y < 10) {
    x++;
    y++;
    System.out.println(x, y);
}

如Andy所說,它的運作就像嵌套的。 而不是使用此方法將所有條件寫入一個if語句中,並使用&&運算符。

使用Java邏輯運算符可以解決您的問題。
點擊此鏈接以了解更多信息
http://www.cafeaulait.org/course/week2/45.html

暫無
暫無

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

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