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();