2016-10-10 5 views
1
package leapYear; 

import java.util.Scanner; 
import javax.swing.JOptionPane; 

public class leapYear { 

    public static void main (String[] args){ 

    String yearInput = JOptionPane.showInputDialog("Enter the year here: "); 
    Scanner inputScanner = new Scanner(yearInput); 
    int year = inputScanner.nextInt(); 
    inputScanner.close(); 

    boolean leapYear = false; 
    { 

    if (year % 400 == 0) 
    { 
     leapYear = true; 
    } 

    else if (year % 100 == 0) 
    { 
     leapYear = false; 
    } 

    else if (year % 4 == 0) 
    { 
     leapYear = true; 
    } 

    else 
    { 
     leapYear = false; 
    } 

    if (leapYear) 
     JOptionPane.showMessageDialog(null, year + " IS a leap year!"); 

    else JOptionPane.showMessageDialog(null, year + " is NOT a leap year!"); 
    } 
} 
} 

В основном, что я хочу попытаться сделать, это установить год между словами 500-1000 и программу для печати каждого високосного года за этот период времени. Я новичок в кодировании и понятия не имею, как это сделать. Благодарю.Как напечатать несколько значений для оператора if if в Java?

+1

1. Напишите функцию isLeapYear, которая принимает год в качестве входных данных и возвращает 'true' или' false'. 2. Запишите петлю на протяжении многих лет. 3) Попросите эту петлю эту функцию. – Bathsheba

+0

Вы отправили некоторый код, теперь вы должны объяснить, какая часть пытается сделать то, что вы описали, и объяснить, какая конкретная часть работает неправильно. –

+0

Подсказка: имена классов начинаются с UpperCase. Всегда. – GhostCat

ответ

5

Вы просто поместить свой код в какой-то петли:

for (int year = 500; year <= 1000; year++) { 
and here comes the code you already wrote 

Конечно, вы можете захотеть «украсить» вещи; спрашивая пользователя, чтобы обеспечить «нижний» и «верхний» пределы этого цикла:

for (int year = lowerLimitFromUser; year <= upperLimitFromUser; year++) { 

Другими словами: следующее понятие, которое вы хотите изучить это об использовании for loop.

И конечно: чтобы получить их легко, вы начать создавая вспомогательный метод как

boolean isLeapYear(int year) 

, что вы можете позвонить из вашего цикла. (в идеале вы сначала меняете свой код, чтобы использовать этот новый метод, чтобы проверить, что реструктуризация не нарушила логику).

1

Здесь этот пример больше соответствует тому, что вы можете делать с диапазоном дат, пожалуйста, приспособите его, как вам нравится, это просто пример, поскольку он не учитывает все случаи.

В этом примере я использую цикл for для прокрутки ярости, чтобы увидеть, есть ли какие-либо високосные годы, а затем пометить его значением true.

Вы должны изучить методы для выполнения функций вместо того, чтобы иметь все в основном методе.

import java.util.Scanner; 
import javax.swing.JOptionPane; 
public class StackStuff { 


    public static void main (String[] args){ 
    int yearStart = 0,yearEnd=0,year=0; 
    String yearInput; 
    boolean isLeap = false; 
    String[] possibleValues = {"Year Range","Single Year" }; 
    String selectedValue = (String) JOptionPane.showInputDialog(null, "Choose one", 
    "Input", JOptionPane.INFORMATION_MESSAGE, null,possibleValues, possibleValues[0]); 

    if (selectedValue==possibleValues[0]){ 

     String yearInputStart = JOptionPane.showInputDialog("Enter the starting year here: "); 
     String yearInputEnd = JOptionPane.showInputDialog("Enter the ending year here: "); 
     Scanner inputScannerStart = new Scanner(yearInputStart); 
     Scanner inputScannerEnd = new Scanner(yearInputEnd); 
     yearStart = inputScannerStart.nextInt(); 
     yearEnd = inputScannerEnd.nextInt(); 
     inputScannerStart.close(); 
     inputScannerEnd.close(); 
     for (int i = yearStart ; i <= yearEnd;i++){ 
      if (i % 4 == 0){ 
       isLeap = true; 
       break; 
      }else { 
       isLeap = false; 
      } 

     } 
     if(isLeap){ 
      JOptionPane.showMessageDialog(null,"There are leap years in this range"); 
     }else{ 
      JOptionPane.showMessageDialog(null," There are no leap years in this range"); 
     } 


    }else{ 
     yearInput = JOptionPane.showInputDialog("Enter the year here: "); 
     Scanner inputScanner = new Scanner(yearInput); 
     year = inputScanner.nextInt(); 
     inputScanner.close(); 
     if (year% 4 == 0){ 
      isLeap = true; 
     } 
     else{ 
      isLeap = false; 
     } 

     if(isLeap){ 
      JOptionPane.showMessageDialog(null,"This is a leap year"); 
     }else{ 
      JOptionPane.showMessageDialog(null,"This is not a leap year"); 
     } 
    } 


    } 

}