我怎样才能停止这个循环语句

How can I stop this looping statement

我想要一个代码,它会一直告诉您输入两个数字,直到您输入两个偶数倍数为止。我正在为此任务使用循环语句,当我 运行 我的代码和我键入两个不是偶数倍数的数字时,它一直说 "Please enter even multiples"。请帮我。提前致谢。这是我的代码。

public class looper {
      public static void main (String[] args) {

     float firstNumber = 0;
     float secondNumber = 0;   
     float finalNumber = 0;

     java.util.Scanner input=new java.util.Scanner(System.in);

     System.out.println("Enter your first number."); 
        firstNumber = input.nextFloat();
        input.nextLine();


        System.out.println("Enter your second number."); 
        secondNumber = input.nextFloat();

         finalNumber = firstNumber % secondNumber;

         System.out.println(secondNumber + " and " + firstNumber + " are even multiples.");
     while(finalNumber != 0) { 

        System.out.println("Please enter even multiples.");


        }
      }
    }

您需要设置 finalNumber 的值,使其满足 while 循环的终止条件。你可能想做这样的事情(我还没有编译这段代码!):

while (finalNumber != 0){

    System.out.println("Enter your first number."); 
    firstNumber = input.nextFloat();
    input.nextLine();

    System.out.println("Enter your second number."); 
    secondNumber = input.nextFloat();

    finalNumber = firstNumber % secondNumber;

}
System.out.println(secondNumber + " and " + firstNumber + " are even multiples.");  

您需要使用 if 语句,因为您只想通知用户输入的数字不正确

do{
    System.out.println("Enter your first number."); 
    firstNumber = input.nextFloat();
    input.nextLine();


    System.out.println("Enter your second number."); 
    secondNumber = input.nextFloat();

    finalNumber = firstNumber % secondNumber;
    if(finalNumber!=0)
        System.out.println("values not correct ");
}while(finalNumber!=0);

在计算 while 循环的条件时要小心。 如果不更新用于检查循环内部的变量,您将进入进入无限循环。

这里重要的是您需要用户提供两个值。您 真的 不需要第三个变量来跟踪它,具体取决于您的编写方式,但可以这样编写:

  • 获取值#1
  • 获取值#2
  • 同时 value1 % value2 == 0...
    • ...打印消息并再次从用户那里检索值 #1 和值 #2。
  • 打印完成消息。
System.out.println("Enter your first number."); 
firstNumber = input.nextFloat();
input.nextLine();
System.out.println("Enter your second number."); 
secondNumber = input.nextFloat();

while(firstNumber % secondNumber != 0) {
    System.out.println("Please enter two numbers that are multiples of each other.");
    System.out.println("Enter your first number."); 
    firstNumber = input.nextFloat();
    input.nextLine();
    System.out.println("Enter your second number."); 
    secondNumber = input.nextFloat();
}

// afterwards, print whatever message you require.

如果你不使用while没有问题,那就使用if条件。制作两个独立的功能。一个是检查调用另一个条件以获得结果的条件。这是一个示例代码。希望,它会对你有所帮助。抱歉英语不好。

public class Looper 
{
      public static void main (String[] args) 
      {
          Looper looper = new Looper();
          looper.runTest();
      }

      public void runTest()
      {
          float finalNumber = getResult();
          System.out.println("finalNumber: " + finalNumber);
          if(finalNumber != 0.0) 
         { 
            System.out.println("Please enter even multiples.");
            runTest();
         }
      }

      public float getResult()
      { 
          java.util.Scanner input=new java.util.Scanner(System.in);

          System.out.println("Enter your first number."); 
          float firstNumber = input.nextFloat();
          input.nextLine();

          System.out.println("Enter your second number."); 
          float secondNumber = input.nextFloat();
          float finalNumber = firstNumber % secondNumber;
          System.out.println(secondNumber + " and " + firstNumber + " are even multiples.");
          return finalNumber;
      }

    }