Java循环从用户输入到重复过程?

时间:2017-11-17 13:29:51

标签: java loops

我是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)");

  }


 }

}

提前感谢您的帮助。

2 个答案:

答案 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循环覆盖您的代码,并且只要sNochJahrJ,就会继续。

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

sNochJahr N

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