2016-11-27 17 views
2

Ich bin Anfänger in Java, und ich lerne die if-Anweisung ohneelse, kann bitte die Community meinen Code zu verbessern?Verwendung der if-Anweisung

Problemstellung: In diesem Code verwenden wir nur die if-Anweisung zu üben. Hier müssen Sie Ihr Alter eingeben, um mit heißen Mädchen in die Bar zu gehen, wenn Ihr Alter über 18 ist, können Sie eintreten. Wenn es unter 18 ist, können Sie nicht eingeben.

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

Was gibt es zu überprüfen, wenn es nur eine Liste von ihnen mit verschiedenen Betreibern? Das ist natürlich nicht die beste Art, das zu tun, aber indem du sagst "ohne sonst" * scheinst du das sowieso zu wissen. –

+0

Sieht gut aus. Ein Punkt, die letzten beiden Aussagen sind nutzlos, weil die vier vorher alle Möglichkeiten ausgeschöpft haben, damit sie nie zu ihnen kommen. Für zukünftige Referenz, und ich bin sicher, dass Sie dies während des Lernens abdecken werden, ist eine switch-Anweisung perfekt für diese Art von Problemen. Eine lustige Sache zu lernen! –

+0

@AyoubFalah Ich habe nicht downvote, aber es ist eine minderwertige Frage, wie es fragt nach 'if' Verwendung ohne Angabe dessen, was ihr eigentliches Problem ist, so kann ich sehen, warum zwei Leute taten. –

Antwort

0

Der Code ist in Ordnung, außer, dass die letzte if-Anweisung als nur geringer sein sollte, nicht gleich oder kleiner als, und alle die if-Anweisungen vor der letzten zwei Fremd sind so können Sie sie löschen. Sie müssen nur zwei Möglichkeiten in Betracht ziehen: Die Person ist 18+ oder die Person ist jünger als 18 Jahre.

0

Ihr Code wird "arbeiten" in dem Sinne, dass es Kommentare für jede Alterseingabe drucken wird. Da Sie aber keine oder keine Verschachtelung verwenden, werden immer mehrere Kommentare erzeugt. Zum Beispiel: wenn 17 eingegeben wird, löst es die Kommentare für <> 18, < 18 und < = 18 aus. Auch für die spezifische Eingabe von 18 wird einer der gedruckten Kommentare mit den anderen in Konflikt geraten, sowohl die = 18 als auch > = 18 Kommentare lassen dich rein, während der < = 18 Kommentar dir die Eingabe verweigert.

0

Wenn Sie nur 'if' verwenden müssen, ist die Verwendung in Ihrem Code korrekt, aber Ihre Bedingungen wiederholen sich. Hinweis: Wenn das Alter einer Person 20 ist, wird die zweite, dritte und fünfte Bedingung Ihres Codes wahr und alle diese werden ausgegeben. Wie Sie in der Frage sagen, müssen Sie überprüfen, ob das Alter größer oder kleiner als 18 ist, und wenn Sie überprüfen möchten, ob es gleich 18 ist, so benötigen Sie von allen diesen Bedingungen nur zwei

1

technisch gesehen, haben Sie nur drei Fällen:

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

So können Sie Ihren Code in

... 
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"); 
} 

Bei vereinfachen wollen Sie age >= 18 gewährleisten:

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

Er hat erwähnt, muss nicht 'sonst' – user5434084

+0

@ user5434084 verwenden: Ich sehe, danke! Ich habe die Frage bearbeitet und * ohne * 'sonst 'gesetzt, um den ungewöhnlichen Zustand hervorzuheben. –