gpt4 book ai didi

java - 初学者循环问题 - while ... do

转载 作者:行者123 更新时间:2023-11-29 06:37:07 26 4
gpt4 key购买 nike

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

我不确定为什么它会一直循环。如何使脚本仅在用户键入“sum”、“difference”或“product”以外的字符串时才循环?另外,如何使代码更简单?有什么方法可以在不使用 do ... while 的情况下循环程序吗?

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。因此,赋值表达式的结果为 true

你想检查它是否为true,所以使用比较运算符==:

while (noresponse == true);

或者,因为它已经是一个 boolean 值:

while (noresponse);

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

关于java - 初学者循环问题 - while ... do,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18926126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com