我是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)");
}
}
}
提前感谢您的帮助。
答案 0 :(得分: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循环。
答案 1 :(得分:1)
使用do...while
循环覆盖您的代码,并且只要sNochJahr
为J
,就会继续。
do {
...
} while (sNochJahr.equals("J"));
或sNochJahr
不 N
。
while (!sNochJahr.equals("N"));