2016-10-31 3 views
0
import java.util.*; 

public class LeapYear { 

    public static void main (String args[]) { 

     Scanner scan = new Scanner(System.in); 
     int userInput = scan.nextInt(); 
     boolean leapYearisTrue = false; 

     while (userInput != 0) { 
      if (userInput % 4 == 0) { 
       if ((userInput % 100 == 0) && (userInput % 400 != 0)) { 
        leapYearisTrue = false; 
        System.out.println (leapYearisTrue); 
       } 
       else { 
        leapYearisTrue = true; 
        System.out.println (leapYearisTrue); 
       } 
       userInput = scan.nextInt(); 
      } 
     } 
    } 
} 

Jedes Mal, wenn ich einen Wert eingeben, ein Schaltjahr ist, das Programm läuft und das tut, was es soll:Leaper, wenn Ausdruck fehlerhaft ist

2000 
true 
1960 
true 
400 
true 

aber wenn ich Eingabe eines Nicht-Schaltjahr, es wird nicht gedruckt falsch und würde drucken nicht mehr, dass eine Reihe ein Schaltjahr ist:

403 
400 
2000 (this is a leap year , yet it doesn't print true) 
2004 
+0

Sie sind ein Wenn ..else Zustand – Venkat

Antwort

2

Sie benötigen einen else Zustand if (userInput % 4 == 0) Bedingung hinzuzufügen.

+0

wie ein Charme fehlt, bist du ein Gott. Ich werde dir in 5 Minuten eine Antwort geben. –

1

Try this:

import java.util.*; 

public class LeapYear { 

    public static void main(String args[]) { 

     System.out.println("Enter the year: \n");  
     Scanner scan = new Scanner(System.in); 
     int userInput = scan.nextInt(); 
     boolean leapYearisTrue = false; 

     while (userInput != 0) { 
      if (userInput % 4 == 0) { 
       if (userInput % 100 == 0) { 
        if (userInput % 400 != 0) { 
         leapYearisTrue = true; 
         System.out.println(leapYearisTrue); 
        } 
       } else { 
        leapYearisTrue = true; 
        System.out.println(leapYearisTrue); 
       } 
       userInput = scan.nextInt(); 
      } 
     } 
    } 
} 
Verwandte Themen