2017-11-17 9 views
1

私はJavaプログラミングにとって非常に新しいので、ある年のイースター日付をユーザ入力から取り除き、別のイースター日付を計算するために別の年を入力したいかどうかを尋ねるタスクを与えられました。私が理解していないことは、プロセス全体をやり直す2番目の入力ボックス( "Noch eine Berechnung?(J/N)")からループを作成する方法です。私のコードは次のとおりです。ユーザー入力から繰り返しプロセスまでのJavaループ?

import javax.swing.JOptionPane; 

public class Osterberechnung_ohne_schleife { 

public static void main(String[] args) { 


    String sJahrEingabe = JOptionPane.showInputDialog("Bitte Jahr eingeben:"); 


    int iJahr = Integer.parseInt(sJahrEingabe); 

    int iP = iJahr/100; 
    int iQ = iP/3; 
    int iR = iQ/4; 
    int iX = (15 + iP - iQ - iR) % 30; 
    int iY = (iP + 4 - iR) % 7; 
    int iA = iJahr % 19; 
    int iB = iJahr % 4; 
    int iC = iJahr % 7; 
    int iD = (19 * iA + iX) % 30; 
    int iE = (2 * iB + 4 * iC + 6 * iD + iY) % 7; 



    if ((iD == 29) && (iE == 6)) { 

    System.out.println("Ausgabe: Ostern ist am 19.April"); 

    } else if ((iD == 28) && (iE == 6)) { 

    System.out.println("Ausgabe: Ostern ist am 18.April"); 

    } else if ((22 + iD + iE) <= 31) { 

    System.out.println("Ausgabe: Ostern ist am " + (22 + iD + iE) + ".März"); 

    } else { 

    System.out.println("Ausgabe: Ostern ist am " + (iD + iE - 9) + ".April"); 

    } 

    { 

    String sNochJahr = JOptionPane.showInputDialog("Noch eine Berechnung? (J/N)"); 

    } 


} 

} 

ありがとうございます。

+0

全体のコードをWHILEループに入れてみてください。ユーザが 'N'を入力した場合、そのループから抜け出す – Hans

+0

計算を行うコードを関数に入れ、次に答えが 'J'である限り呼び出すループを作成する。 – StephaneM

答えて

1

do...whileループを使用してコードを囲み、sNochJahrJである限り続けるようにしてください。

do { 
... 
} while (sNochJahr.equals("J")); 

またはsNochJahrしばらく

ない Nです。

while (!sNochJahr.equals("N")); 
+0

私はdo ... whileループにコード全体を入れようとしましたが、sNochJahr変数はdo ... whileコード内にあるため、sNochJahrは解決できません。私が理解していないのは、do ... whileループをコード内のユーザー入力によって決定する方法です。 –

+0

行う{ \t IF((識別== 29)&&(すなわち== 6)){\t \t \t \t \t \tのSystem.out.println( "Ausgabe:Ostern ISTは19.April午前")。他\t \t \t \t \t}((ID == 28)&&(すなわち== 6))であれば{\t \t \t \t \t \tのSystem.out.println( "Ausgabe:OsternはISTは18.April午前")。他 \t \t \t \t \t}((22 + ID + IE)<= 31){\t \t \t \t \t \tのSystem.out.println(IF:+(22 + ID + IE "Ausgabe Ostern ISTアム" )+ ".Merz"); \t \t \t \t \t}他{\t \t \t \t \t \tのSystem.out.println( "Ausgabe:Ostern ISTアム" +(ID + IE - 9)+ ".April")。 \t \t \t \t \t} \t \t \t \tストリングsNochJahr = JOptionPane.showInputDialog( "NOCHアイネBerechnung(J/N)?")。 \t \t} while(sNochJahr。( "J")と等しい)。 \t \t } \t} –

+0

https://ideone.com/wKErpD – notyou

1

ユーザーの応答をString sNochJahrに保存しましたが、評価していません。

String sNochJahr = "J" 

while (sNochJahr.equals("J")) { 
     String sJahrEingabe = JOptionPane.showInputDialog("Bitte Jahr eingeben:"); 


    int iJahr = Integer.parseInt(sJahrEingabe); 

    int iP = iJahr/100; 
    int iQ = iP/3; 
    int iR = iQ/4; 
    int iX = (15 + iP - iQ - iR)%30; 
    int iY = (iP + 4 - iR)%7; 
    int iA = iJahr % 19; 
    int iB = iJahr % 4; 
    int iC = iJahr % 7; 
    int iD = (19 * iA + iX)%30; 
    int iE = (2 * iB + 4 * iC + 6 * iD + iY)%7; 



    if ((iD==29) && (iE==6)) { 

     System.out.println("Ausgabe: Ostern ist am 19.April"); 

    } else if ((iD==28) && (iE==6)) { 

     System.out.println("Ausgabe: Ostern ist am 18.April"); 

    } else if ((22 +iD + iE) <= 31) { 

     System.out.println("Ausgabe: Ostern ist am " + (22 + iD + iE) + ".März"); 

    } else { 

     System.out.println("Ausgabe: Ostern ist am " + (iD + iE - 9) + ".April"); 

    } 

    { 

    String sNochJahr = JOptionPane.showInputDialog("Noch eine Berechnung? (J/N)"); 

     } 
} 

ユーザが "N"を入力すると、コードはwhileループから抜け出します。

関連する問題