簡體   English   中英

Java if Statement,'Else'仍在執行

[英]Java if Statement, 'Else' Executing Anyway

我正在學習Java,希望有一天能夠擅長Java。 現在我正在玩If Statements。 我在玩游戲時制作了以下代碼:

import java.util.Scanner;

class programBegin {
public static void main(String args[]) {

    int myNum;

    Scanner sc = new Scanner(System.in); // Creates variable sc as type Scanner
    System.out.println("Enter a number between 1 and 10: ");
    myNum = sc.nextInt(); // Requests input and will store it as type int.

    if (myNum > 5) {
        System.out.println("Your number is greater than 5.");
    }
    if (myNum == 5) {
        System.out.println("your number is equal to 5.");
    } else {
        System.out.println("Your number is less than 5.");
    }
  }
}

例如,如果我輸入6,我得到的輸出是:

您的電話號碼大於5。

您的電話號碼小於5。

除非之前的陳述是假的,否則我認為不應該執行其他事情?

你在if (myNum == 5)之前錯過了一個else

if (myNum > 5) {
    System.out.println("Your number is greater than 5.");
} else if (myNum == 5) {
    System.out.println("your number is equal to 5.");
} else {
    System.out.println("Your number is less than 5.");
}

如果,將其更改為else

if (myNum > 5) {

} else if (myNum == 5) {

} else {

}

如果你在第二個if之前添加一個else,它將按預期工作。

您的代碼相當於“如果數字超過5,則打印此數據。如果數字為5,則打印此數據。如果數字不是5,則打印此數據。”

你的else語句對應於if (myNum == 5)而不是if (myNum > 5)

你可能希望在這里使用if-else語句。

if (myNum > 5) {
    System.out.println("Your number is greater than 5.");
} else if (myNum == 5) {
    System.out.println("your number is equal to 5.");
} else {
    System.out.println("Your number is less than 5.");
}

在第一個if ..... 它不存在塊 ....它還檢查第二個if ...並且作為它的假..它進入其他...

試試這種方式....

if (myNum > 5) {
        System.out.println("Your number is greater than 5.");
    }
    if (myNum == 5) {
        System.out.println("your number is equal to 5.");
    } 
   else if(myNum < 5) {
        System.out.println("Your number is less than 5.");
    }

要么

   if (myNum > 5) {
            System.out.println("Your number is greater than 5.");
        }
        else if (myNum == 5) {
            System.out.println("your number is equal to 5.");
        } 
       else (myNum < 5) {
            System.out.println("Your number is less than 5.");
        }

你需要把你的第二個if if變成else if語句,因為第二個if總是被檢查並且它返回false因為6!= 5,這意味着你的其他人將被評估。

您可以使用它來獲得更高的性能。

這里如果mynum大於5,則會省略另外兩個ifs:

if (myNum > 5) {
    System.out.println("Your number is greater than 5.");
} else{
    if (myNum == 5) {
        System.out.println("your number is equal to 5.");
    } else if(myNum < 5) {
        System.out.println("Your number is less than 5.");
    }
}

這是兩個不同的'if'語句被執行而不是一個。 有很多方法可以解決這個問題...請參閱上面的許多不同方法:)有趣的是,知道不放一個單詞可以有不同的輸出,或者在這種情況下,輸出多個。 在這種情況下,'else if'將是修復小錯誤的好方法。 祝你學習順利。

暫無
暫無

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

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