2016-10-10 9 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の間の年を入れて、プログラムがその期間に1回のうるう年を印刷することです。私はコーディングをしていないので、これについてどうやって行くのか分かりません。ありがとう。ループのいくつかの種類にコードを置くあなたは、単純なJavaの真のif文に複数の値を出力する方法は?

+1

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ループを使用して怒りを巡って閏年があるかどうかを確認し、真にフラグを立てます。

メインメソッドのすべてを持つのではなく、関数を実行するためにメソッドを使用することに注意してください。

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


    } 

} 
関連する問題