当前位置: 首页 > 知识库问答 >
问题:

Do-While循环打印文本以提示用户输入sentinel值,然后在接收输入之前重新启动

邓开济
2023-03-14
    import java.util.Scanner;

public class DonutSign {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
            //initiate all variables
        boolean ans = false;
        double r = 0;
        double sideA = 0;
        double sideB = 0;
        double angle = 0;
        String text = "INTIAL";
        
        double circleArea = 0;
        double parArea = 0;
        double finalArea = 0;
        double sizePrice = 0;
        double textPrice = 0;
        double finalPrice = 0;
        String response = "quit";
    
            //do-while price calculation
        do{
                //have all of the variables entered
            System.out.println("Enter the radius of the circles:");
            r = input.nextDouble();
            System.out.println("Enter the first side of the parallelogram:");
            sideA = input.nextDouble();
            System.out.println("Enter the second side of the parallelogram:");
            sideB = input.nextDouble();
            System.out.println("Enter the angle of the parallelogram:");
            angle = input.nextDouble();
            System.out.println("Enter the string you would like on your sign:");
            text = input.next();
            
                //calculate area of the circles
            circleArea = Math.PI * Math.pow(r, 2);
                //calculate area of parallelogram
            parArea = sideA * sideB * (Math.sin(Math.toRadians(angle)));
                //add surface area values together and calculate price
            finalArea = circleArea + parArea;
            sizePrice = finalArea * 2.95;
                //calculate price of text and add values
            textPrice = ((text.length() + 1)    * 1.45);
            finalPrice = textPrice + sizePrice;
            System.out.print("$");
            System.out.printf("%.2f", finalPrice);
            System.out.println();
            
            
                //If-else to exit the loop
            System.out.println("Would you like to create another sign? Enter quit to exit.");
            response = input.nextLine();
            if(response == "quit"){
                ans = true;
            }
            else{
                ans = false;
            }
        } while (ans != true);      
    }
}

共有1个答案

谢奇略
2023-03-14

这里有一个很好的答案:

Java扫描器不等待用户输入

问题是nextInt()不使用'\n',所以下一次调用nextLine()会使用它,然后它会等待读取Y的输入。

 类似资料:
  • 下面的代码循环了两次。第一个while循环要求用户输入(以做出选择)。我把选择默认值设置为“n”,使它变得更简单。 因此,它命中if语句并开始第2个while循环。现在它要求用户进行另一个选择。用户只能输入“a”,因为其他任何东西都会出现错误陷阱。用户输入“a”并得到添加一个数字的提示(变量num=0)。用户输入一个数字。 使用更多信息更新的代码 我已经尝试使用不同的变量进行选择。它不起作用。我想

  • 我正在尝试编写一个程序,允许在无限循环中生成随机数。如果用户按下'c',它将脱离循环。但是循环只在我按下c时开始,它应该在之前开始,当我按下'c'时它应该停止。 另外,我想知道如何才能只使用while循环而不是do-while循环来完成这个程序。当我使用while时,我从开始,然后使用来自input的if语句中断循环,但这也不起作用。内部仍然有两个for循环。 多谢

  • 需要一些专家的建议。首先,这里是我的代码: 我的问题是:当我输入一个用户号码如“3”时,提示我的代码只打印一个__当我希望它打印指定的号码。我无论如何也想不出来。 我是英语专业的,所以这不是我的强项:(形状应该是菱形的。)

  • 我试图创建一个简短的基于文本的冒险游戏使用Java。 我是一个初学的程序员,所以我的方法可能不是最有效的,但我只使用了我从学校课程中学到的东西。 为什么会出现这个问题?我不知道我做错了什么。 谢了!

  • 我正在设置一个,它在用户输入整数之前一直执行。但是,按照我现在的方式,循环在输入整数后再次打印消息,然后程序正常执行。有人能建议一种方法来使输入整数后不再打印该消息吗?谢了!

  • 首先,感谢你阅读我的帖子并帮助我。 我试图编程,我定义了一个随机数,程序猜测这个随机数,然后,根据我说猜测太高或太低,程序再次猜测。 再次感谢!