2017-02-20 6 views
0
public class FavNum { 

    public static void isEven(int x){ 
     boolean b; 
     if (x%2==0) { 
      b=true; 
     }else{ 
      b=false; 
     } 
    } 

    public static void isSingle(int x){ 
     boolean b; 
     if (x > 0 && x < 10){ 
      b=true;   
     }else{ 
      b=false; 
      JOptionPane.showMessageDialog(null, "Your favorite number is not a single digit!");   
     } 
    } 

    public static void all(int x){ 
     isEven (x); 
     //What should I add here to use isEven and isSingle in conditionals? 
     //For example, I want to say something like if isEven and isSingle are true, then say this. 
     //Or if isEven is true and isSingle is not, say this. But I don't know how to properly write those conditionals. 
    } 

    public static void main(String[] args) { 
     int x = Integer.parseInt(JOptionPane.showInputDialog(null, "What is your favorite number?"));   
    }  
} 

Die Richtungen für diese Verwendung sind als "boolean wahr und falsch in conditionals

  • FavoriteNumber
  • namens Erstellen Sie ein neues Projekt folgt ISEVEN genannt Boolesche Methode schreiben, die einen Integer-Parameter akzeptiert und erkennt, ob Die Ganzzahl ist gerade oder nicht und gibt entweder true oder false zurück
  • Schreiben Sie eine zweite boolesche Methode namens isSingleDigit, die einen Integer-Parameter verwendet und feststellt, ob die ganze Zahl eine einzelne Zahl ist oder nicht,
  • In main, fragt den Benutzer nach seiner Lieblingsnummer.
  • Testen Sie die Nummer mit einer Bedingungsanweisung, und wenn sowohl gerade als auch eine einzelne Ziffer, drucken Sie eine Nachricht (kreativ sein).
  • Testen Sie mit einem anderen bedingten wenn sowohl ungerade als auch keine einzelne Ziffer und drucken Sie eine andere (kreative) Nachricht.
  • Fügen Sie eine Bedingung hinzu, die bei ungeradem ODER eine einzelne Ziffer testet und eine Creative-Nachricht ausgibt.
  • eine endgültige bedingte hinzufügen, dass Tests, wenn auch und nicht eine einzelne Ziffer und druckt eine letzte kreative Meldung“

Bisher habe ich die ersten 4 Kugeln getan haben. Ich habe Probleme (und glaube nicht, Ich verstehe es vollständig, die fünfte Kugel. Ich habe versucht, es zu tun, indem ich eine neue Methode namens all, wo ich plante, isSingle und isEven zu nennen und wenn sonst Anweisungen zu verwenden, um sie zu vergleichen und Nachrichten entsprechend zurückgeben.Aber ich bin fest und habe Kommentare hinterlassen In meinem obigen Code, die meine Probleme zu erklären.

Kann mir jemand bitte mit dieser Aufgabe helfen? Oder zumindest zeigen Sie mir in die richtige Richtung?

Vielen Dank!

+2

x ist bereits ein boolean –

+0

Wie behebe ich das? Dies ist meine erste Woche in der Klasse, also bin ich noch nicht sehr erfahren. –

+0

@LaurenMcCabe Ich denke, Sie haben den Rückgabetyp einer Funktion mit den Parametern einer Funktion vermischt. Die Funktion isOff sollte wahrscheinlich eine Zahl als Parameter annehmen und einen booleschen Wert zurückgeben. Ihr nimmt einen booleschen Wert als Parameter und gibt nichts zurück. –

Antwort

1
public class Joption { 

    // declared outside so easier to be accessed by other methods in the class 
    private static int x; 

    // is the number passed into this method even? 
    private static boolean isEven(int x) { 
     if (x % 2 == 0) { 
      return true; 
     } 
     return false; 
    } 

    // is the number passed into this method single? 
    private static boolean isSingle(int x) { 
     if (x >= 0 || x < 10) { 
      return true; 
     } 
     return false; 
    } 

    // is the number passed in even AND single? 
    // notice how the number passed in flows into the two methods you just created. Their returns help you determine if they are even AND single. 
    private static void isEvenAndSingle(int x) { 
     if (isEven(x) && isSingle(x)) { 
      JOptionPane.showMessageDialog(null, x + "is Even and Single!"); 
     } 
    } 

    // same as above method but now it's checking to see if it's even and NOT single. 
    private static void isEvenAndNotSingle(int x) { 
     if (isEven(x) && !(isSingle(x))) { 
      JOptionPane.showMessageDialog(null, x + "is Even but NOT single!"); 
     } 
    } 

    // your main running method 
    // here you actually need to call the isEvenAndSingle() and isEvenAndNotSingle() methods with the retrieved x value from the JOptionPane so that you can actually print the appropriate messages in the responding JOptionPane 
    public static void main(String[] args) { 
     x = Integer.parseInt(JOptionPane.showInputDialog(null, "What is your favorite number?")); 
     isEvenAndSingle(x); 
     isEvenAndNotSingle(x); 
    } 

} 

Ihr Problem, wie bereits erwähnt, ist in der Art und Weise Sie das Abrufen Wert von Ihrem JOptionPane. Du bekommst es als Int. Aber Sie geben es als Boolean in Ihre Methoden ein. Was Sie tatsächlich tun müssen, ist, die Werte als int (siehe isEven() - und isSingle() -Methode zu übergeben) und sie einen booleschen Wert zurückzugeben.

Dann werden Sie aufgefordert, einen Vergleich mit den zwei Methoden zu erstellen, die Sie gerade erstellt haben. Eine für wenn die Zahl gerade und einzeln ist und eine für wenn die Zahl gerade und NICHT einfach ist.

Ich habe den Code mit Kommentaren kommentiert, damit Sie besser verstehen! Viel Glück mit Ihrem zukünftigen Java-Code!:)

+0

Vielen Dank !!!!!!!! –

+0

Keine Sorge! : D Ich hoffe, du hast mehr Spaß beim Programmieren! Melde mich, wenn du mehr Erklärungen benötigst! – blaytenshi

2

Sie vergleichen booleans mit Zahlen:

boolean x; 

if (x%2==0) { //Error here 
    b=true; 
} 

if (x > 0 && x < 10){  //Error here 
     b=true; 

Sie das nicht tun können.

Wenn x true oder false ist, können Sie nicht überprüfen, ob es größer als 0 ist oder arithmetische Operationen damit ausführen.

0

Sieht aus wie Sie der Algorithmus Abschnitt Von Ihnen Methoden herausgefunden haben, müssen Sie boolean zurückgeben statt Leere

public static boolean isEven(int x){ 
    return (x % 2) == 0; 
}