I am very new to Java Programming, I have been given a task to work out from user input the easter date for a given year and then to ask if the user would like to input another year to calculate another easter date. What I don't understand is how to create a loop from the second input box ("Noch eine Berechnung? (J/N)") that repeats the entire process again. My code is this:
我是Java编程的新手,我被赋予了一个任务,即从用户输入一年中的复活节日期开始,然后询问用户是否想输入另一年来计算另一个复活节日期。我不明白的是如何从第二个输入框(“Noch eine Berechnung?(J / N)”)创建一个循环,再次重复整个过程。我的代码是这样的:
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)");
}
}
}
Thanks in advance for your help.
在此先感谢您的帮助。
2 个解决方案
#1
1
Surround your code with a do...while
loop and keep going as long as sNochJahr
is J
.
用do ... while循环包围你的代码,只要sNochJahr是J,就继续运行。
do {
...
} while (sNochJahr.equals("J"));
or while sNochJahr
is not N
.
或者sNochJahr不是N.
while (!sNochJahr.equals("N"));
#2
1
Youre saving the response of the user in String sNochJahr
, but not evaluating it. I would suggest something like this:
您在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)");
}
}
If the user inputs "N" then, the code breaks out of the while-loop.
如果用户输入“N”,则代码中断while循环。
#1
1
Surround your code with a do...while
loop and keep going as long as sNochJahr
is J
.
用do ... while循环包围你的代码,只要sNochJahr是J,就继续运行。
do {
...
} while (sNochJahr.equals("J"));
or while sNochJahr
is not N
.
或者sNochJahr不是N.
while (!sNochJahr.equals("N"));
#2
1
Youre saving the response of the user in String sNochJahr
, but not evaluating it. I would suggest something like this:
您在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)");
}
}
If the user inputs "N" then, the code breaks out of the while-loop.
如果用户输入“N”,则代码中断while循环。