gpt4 book ai didi

Java while 循环在与 scan.nextLine() 交互后终止;方法

转载 作者:行者123 更新时间:2023-11-30 04:05:35 25 4
gpt4 key购买 nike

我是一名计算机科学专业的初学者,目前遇到一个问题。这是一个简单的程序,要求用户输入一个数字x,然后求解该数字的多项式方程。然后,它应该询问用户是否要继续,如果是,则提示 x 的新号码。但是,该程序仅询问用户 x 一次,然后在计算多项式后终止。它甚至打印 Continue? 但甚至不等待读取下一行,它似乎立即终止。它似乎完全忽略了 response = scan.nextLine();

此问题的目标是学习如何使用 while 循环和 Scanner。

有人能看到我的错误并给我提示吗?

谢谢!

import java.util.Scanner;

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

Scanner scan = new Scanner (System.in);

double x; // a value to use with the polynomial
double result; // result of evaluating the polynomial at x
String response = "y"; // yes or no

while ( response.equals("y") )
{
// Get a value for x
System.out.println("Enter a value for x:");
x = scan.nextDouble();

// Evaluate the polynomial
result = (7 * x * x * x) - (3 * x * x) + (4 * x) - (12);

// Print out the result
System.out.println("The result of the polynomial at x = " + x +" is: " + result + "\n");

// Aks user if the program should continue
// The users answer is "response"
System.out.println ("continue (y or n)?");
response = scan.nextLine();
}
}
}

最佳答案

nextDouble() 仅读取 double,而不是写入 double 的行尾 - 因此,当您下次调用 nextLine() 时,它会读取 (空)该行的剩余部分,不等于“y”,因此它从循环中中断。

nextLine() 直接放在 nextDouble() 调用之后应该可以通过消耗此空行的其余部分来修复它。

使用 nextDouble()nextInt() 时请注意这一点 - 这是经常犯的经典错误!

关于Java while 循环在与 scan.nextLine() 交互后终止;方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20816555/

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