2016-11-27 158 views
2

我是Java初學者,我正在學習if語句沒有else,請問社區檢查我的代碼是否改進?使用if語句

問題陳述: 在這段代碼中,我們只使用if語句來練習。在這裏你需要輸入你的年齡才能進入酒吧與熱辣女孩,如果你的年齡在18歲以上,你可以進入。 如果它低於18你不能進入。

import java.util.Scanner; 

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

     Scanner input = new Scanner(System.in); 

     int age; 

     // Ask the age 
     System.out.println("Please write your age to enter to the bar:"); 
     age = input.nextInt(); 

     // Equal to 
     if(age == 18){ 
      System.out.println("Your age " + age + " it's equal to 18, you can enter"); 
     } 

     // Not equal to 
     if(age != 18){ 
      System.out.println("Your age " + age + " it's not equal to 18"); 
     } 

     // Greater than 
     if(age > 18){ 
      System.out.println("Your age " + age + " " + "is greater than 18, you can enter"); 
     } 

     // Less than 
     if(age < 18){ 
      System.out.println("Your age " + age + " " + "is less than 18, you can't enter"); 
     } 

     // Greater than or equal to 
     if(age >= 18){ 
      System.out.println("Your age " + age + " is greater than or equal to 18, you can enter"); 
     } 
     // Less than or equal to 
     if(age <= 18){ 
      System.out.println("Your age " + age + " is less than or equal to 18, you can't enter"); 
     } 
    } 
} 
+0

有什麼好檢查的時候,它只是一個與不同的運營商他們的名單?這當然不是這樣做的最好方式,但通過說*「沒有別的」*你似乎無論如何都知道。 –

+0

看起來不錯。有一點,最後兩個陳述是無用的,因爲前四個陳述耗盡了所有可能性,所以它永遠不會得到它們。爲了將來的參考,我相信你會在學習的時候加以說明,一個switch語句對於這些問題是完美的。學習一件有趣的事情! –

+0

@AyoubFalah我沒有downvote,但它是一個低質量的問題,因爲它詢問'if'的用法,沒有指出他們的實際問題是什麼,所以我可以看到爲什麼兩個人做了。 –

回答

0

你的代碼是,除了最後的精if語句應該比不僅僅是少,不等於以下,所有的如果最後兩個前語句是多餘的,所以你可以將它們刪除。你只需要考慮兩種可能性:18歲以上的人,或者18歲以下的人。

0

你的代碼將會'工作',因爲它會打印每個年齡輸入的註釋。但是,因爲您不使用其他或嵌套,它總是會產生多個註釋。例如:如果輸入17,則將觸發對於<> 18,< 18和< = 18的評論。對於18的特定輸入,其中一個打印的評論將與其他評論相沖突,因爲= 18和> = 18條評論會讓你進入,而< = 18條評論會拒絕你的輸入。

0

如果您只需要使用'if',它在代碼中的使用是正確的,但是您的條件正在重複。 提示:如果一個人的年齡應該是20,那麼您的代碼的第二,第三和第五個條件將爲真,並且所有這些都將輸出。正如你在問題中所說的,你需要檢查年齡是大於還是小於18,並且如果你想檢查它是否等於18,那麼從所有這些條件中,你只需要兩個

1

從技術上講,你剛纔案件:

  • age < 18
  • age == 18
  • age > 18

所以,你可以簡化你的代碼

... 
if (age < 18) { 
    System.out.println("Your age " + age + " it's not equal to 18"); 
    System.out.println("Your age " + age + " is less than 18, you can't enter"); 
    System.out.println("Your age " + age + " is less than or equal to 18, you can't enter"); 
} 

// "else if" instead of "if" will make the code more readable 
if (age == 18) { 
    System.out.println("Your age " + age + " it's equal to 18, you can enter"); 
    System.out.println("Your age " + age + " is greater than or equal to 18, you can enter"); 
    System.out.println("Your age " + age + " is less than or equal to 18, you can't enter"); 
} 

// "else" instead of "if" will make the code more readable 
if (age > 18) { 
    System.out.println("Your age " + age + " it's not equal to 18"); 
    System.out.println("Your age " + age + " is greater than 18, you can enter"); 
    System.out.println("Your age " + age + " is greater than or equal to 18, you can enter"); 
} 

如果你想確保age >= 18

if (age >= 18) { 
    System.out.println("Your age " + age + " is greater than or equal to 18, you can enter"); 
} 

// "else" is a better choice here 
if (age < 18) { 
    System.out.println("Your age " + age + " is less than 18, you can't enter"); 
} 
+0

他提到不需要使用'其他' – user5434084

+0

@ user5434084:我明白了,謝謝!我已經編輯了這個問題,並且把*沒有*'else'以突出顯示這個不尋常的情況。 –