首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >If语句循环

问If语句循环
EN

Stack Overflow用户
提问于 2020-08-21 21:23:27
回答 2查看 116关注 0票数 1

所以我做了一个程序来做不同的数学题,这取决于用户想要什么,我不希望程序在用户完成之后结束。现在,我的循环重复了一遍又一遍相同的选项。期望的效果是能够不断地选择你想要做的问题。我对编码相当陌生,所以如果这是一个简单的问题,我很抱歉。

代码语言:javascript
复制
public static void main(String[] args)
{
    System.out.println("What problem do you want to do?");
    System.out.println("1:Celcius to Farenheit");
    System.out.println("2:Slope Formula");
    System.out.println("3:Averages");
    System.out.println("4:Perimeter");
    System.out.println("5:Exit\n\n");
    
    Scanner keyboard = new Scanner(System.in);
    
    int response = keyboard.nextInt();

    
    do
    {
    if (response == 1)
    {
        System.out.println("Degrees Celcius:");
        int degrees = keyboard.nextInt();
        System.out.println(degrees + " degrees Celcius is " + celsToFarenheit(degrees) + " degrees Farenheit.");
    }
    else if (response == 2)
    {
        System.out.println("x1:");
        int x1 = keyboard.nextInt();
        System.out.println("y1:");
        int y1 = keyboard.nextInt();
        System.out.println("x2:");
        int x2 = keyboard.nextInt();
        System.out.println("y2:");
        int y2 = keyboard.nextInt();
        System.out.println("The slope is " + slopeFormula(x1,y1,x2,y2));
    }
    else if (response == 3)
    {
        System.out.println("First number:");
        int num1 = keyboard.nextInt();
        System.out.println("Second number:");
        int num2 = keyboard.nextInt();
        System.out.println("The average is " + average(num1,num2));
    }
    else if (response == 4)
    {
        System.out.println("Length:");
        int length = keyboard.nextInt();
        System.out.println("Width:");
        int width = keyboard.nextInt();
        System.out.println("The perimeter is " + perimeter(length,width));
    }
}
while (response != 5);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-21 21:28:21

将此部分更改如下:

代码语言:javascript
复制
do
{
int response = keyboard.nextInt();
if (response == 1)

如果您将keyboard.nextInt()调用移动到do循环中,它现在将反复向用户请求输入。

在循环之前,您有这行代码,所以它只处理了一次。

票数 1
EN

Stack Overflow用户

发布于 2020-08-21 22:05:59

在循环之外声明int response。在循环内放置response = keyboard.nextInt();

有了循环之外的int response = keyboard.nextInt(),您就再也无法到达它了。另外,将选项放在循环中,这样每次都会显示出来。

代码语言:javascript
复制
public static void main(String[] args) {


    Scanner keyboard = new Scanner(System.in);

    int response;


    do {
        System.out.println("What problem do you want to do?");
        System.out.println("1:Celcius to Farenheit");
        System.out.println("2:Slope Formula");
        System.out.println("3:Averages");
        System.out.println("4:Perimeter");
        System.out.println("5:Exit\n\n");

        response = keyboard.nextInt();
        if (response == 1) {
            System.out.println("Degrees Celcius:");
            int degrees = keyboard.nextInt();
            System.out.println(degrees + " degrees Celcius is " + celsToFarenheit(degrees) + " degrees Farenheit.");
        } else if (response == 2) {
            System.out.println("x1:");
            int x1 = keyboard.nextInt();
            System.out.println("y1:");
            int y1 = keyboard.nextInt();
            System.out.println("x2:");
            int x2 = keyboard.nextInt();
            System.out.println("y2:");
            int y2 = keyboard.nextInt();
            System.out.println("The slope is " + slopeFormula(x1,y1,x2,y2));
        } else if (response == 3) {
            System.out.println("First number:");
            int num1 = keyboard.nextInt();
            System.out.println("Second number:");
            int num2 = keyboard.nextInt();
            System.out.println("The average is " + average(num1,num2));
        } else if (response == 4) {
            System.out.println("Length:");
            int length = keyboard.nextInt();
            System.out.println("Width:");
            int width = keyboard.nextInt();
            System.out.println("The perimeter is " + perimeter(length,width));
        }
    }
    while (response != 5);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63530232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档