Java 初学者循环问题-而。。。做

Java 初学者循环问题-而。。。做,java,loops,while-loop,do-while,Java,Loops,While Loop,Do While,程序的作用:从输入中读取两个值,询问用户是加、减还是求乘积。如果用户输入三个选项中的一个,它将进行计算,否则程序将返回到开始。如果用户输入三个选项中的一个,则计算后程序应停止 我不知道为什么它一直在循环。仅当用户键入的字符串不是sum、difference或product时,如何使脚本循环?另外,如何使代码更简单?有没有办法不使用do循环程序。。。什么时候 import java.util.Scanner; import java.util.Random; public class simp_

程序的作用:从输入中读取两个值,询问用户是加、减还是求乘积。如果用户输入三个选项中的一个,它将进行计算,否则程序将返回到开始。如果用户输入三个选项中的一个,则计算后程序应停止

我不知道为什么它一直在循环。仅当用户键入的字符串不是sum、difference或product时,如何使脚本循环?另外,如何使代码更简单?有没有办法不使用do循环程序。。。什么时候

import java.util.Scanner;
import java.util.Random;

public class simp_calculator
{
  public static void main (String[] args)
  {
    Scanner scan = new Scanner (System.in);
    double a, b;
    String response;
    boolean noresponse;

    do
    {
      System.out.println ("Please enter first number.");
      a = scan.nextDouble();

      System.out.println ("Please enter second number.");
      b = scan.nextDouble();

      System.out.println ("Would you like to find the sum, difference, product?");
      response = scan.next();

      if (response.equalsIgnoreCase ("sum"))
      {
        System.out.println (a + b);
      }

      if (response.equalsIgnoreCase ("difference"))
      {
        System.out.println (a - b);
      }

      if (response.equalsIgnoreCase ("product"))
      {
        System.out.println (a * b);
      }

      else
      {
        noresponse = true; 
        System.out.println ("Starting again...");
      }

    }
    while (noresponse = true);

  }
}  
当noresponse=true时更改;当noresponse==true;时发送到;。 =是赋值操作-其中as==比较。

更改,而noresponse=true;当noresponse==true;时发送到;。
=是一个赋值操作-其中as==比较。

您使用的是赋值运算符=,因此noresponse将始终为真。因此,赋值表达式的结果为真

要检查它是否为真,请使用比较运算符=:

或者,因为它已经是布尔值:


此外,您可能会收到一个编译器错误,其中noresponse可能尚未初始化。您需要确保在所有情况下都对其进行了初始化,并且某些设置将其设置为false,以便循环最终结束。

您使用的是赋值运算符=,因此noresponse始终为true。因此,赋值表达式的结果为真

要检查它是否为真,请使用比较运算符=:

或者,因为它已经是布尔值:

此外,您可能会收到一个编译器错误,其中noresponse可能尚未初始化。您需要确保在所有情况下都对其进行了初始化,并将其设置为false,以便循环最终结束。

有两个问题:

当前您正在循环,而noreponse等于true。因此,要退出该循环,当满足特定条件时,需要将NOResponse设置为false:我可以给你答案,但你应该能够用我给你的信息来解决它。提示:在某些情况下,您需要将noresonse设置为false

此外,您将noresponse设置为相等,而不是比较它。您需要使用==进行比较

因此,当noresponse=true时,进行设置;当noresponse==true;时进入

有两个问题:

当前您正在循环,而noreponse等于true。因此,要退出该循环,当满足特定条件时,需要将NOResponse设置为false:我可以给你答案,但你应该能够用我给你的信息来解决它。提示:在某些情况下,您需要将noresonse设置为false

此外,您将noresponse设置为相等,而不是比较它。您需要使用==进行比较

因此,当noresponse=true时,进行设置;当noresponse==true;时进入

两个错误:

else仅适用于最后一个if;因此,对于任何值,除了该产品,noresponse变为真,循环继续。从第二个开始,用else if替换所有if。 在循环开始时,应为noresponse指定值false。 两个错误:

else仅适用于最后一个if;因此,对于任何值,除了该产品,noresponse变为真,循环继续。从第二个开始,用else if替换所有if。 在循环开始时,应为noresponse指定值false。 只要在reponse=true时更改whilereponse并命名变量即可。

只要在reponse=true时更改whilereponse并命名变量即可

while (noresponse == true);
while (noresponse);