Java 无法从用户处获取“重新计算”以进行工作
我写了一个石头,布,剪刀的游戏,它有一个重演的功能 我不明白那里少了什么 我只需要它来询问用户是否要计算另一个圆 代码段:Java 无法从用户处获取“重新计算”以进行工作,java,java.util.scanner,user-input,calculator,Java,Java.util.scanner,User Input,Calculator,我写了一个石头,布,剪刀的游戏,它有一个重演的功能 我不明白那里少了什么 我只需要它来询问用户是否要计算另一个圆 代码段: package circleapp; import java.util.Scanner; public class CircleApp { static Scanner sc = new Scanner(System.in); public static void main(String[] args) { String answer;
package circleapp;
import java.util.Scanner;
public class CircleApp {
static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
String answer;
String calcAgain;
do{
System.out.print("Enter a radius: ");
double radius = sc.nextDouble();
//Diameter=2 * radius
double diameter= 2 * radius;
System.out.println("Diameter: " + diameter);
//Circumference= 2 * PI * radius
double circumference= Math.PI * 2*radius;
System.out.println( "Circumference: "+circumference);
//Area= PI*radius*radius
double area = Math.PI * (radius * radius);
System.out.println("Area: " + area);
//Would the user like to calculate again?
System.out.print("Would you like to enter another circle? (Y/N)");
calcAgain = sc.nextLine();
}
while (calcAgain.equalsIgnoreCase("Y"));
}
}
如何解决此问题?不要使用nextLine阅读全文,而是使用simple next: 输出将类似于:
Enter a radius: 4
Diameter: 8.0
Circumference: 25.132741228718345
Area: 50.26548245743669
Would you like to enter another circle? (Y/N): y
Enter a radius: 5
Diameter: 10.0
Circumference: 31.41592653589793
Area: 78.53981633974483
Would you like to enter another circle? (Y/N): n
另外,我的建议是编写可读性强的代码。例如,以下哪一项更适合阅读:
双圆周=数学PI*2*半径
或
双圆周=数学PI*2*半径
顺便说一句,在这里提问时,只需指定您的问题并省略另一个细节。更改
calcAgain = sc.nextLine();
到
下一步应该可以Double不会消耗整条线路。所以nextLine会消耗它。在检索客户端答案y或n之前,添加额外的nextLine语句。它将给出:sc.nextLine;calcAgain=sc.nextLine;你可以选择下一个而不是下一个。这将解决你的问题。可能重复的是,我仍然非常不擅长格式化。谢谢,我很感激@Kaitlin您可以为IDE使用自动格式化快捷方式。顺便说一句,在SO,我们对接受答案和投票表示感谢。
calcAgain = sc.nextLine();
calcAgain = sc.next();