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

使用if语句java添加while循环

亢建白
2023-03-14

我正在为学校做一个简单的Java计算器,效果很好。但是,我需要添加一个while循环,询问用户是否要继续是/否。不过,我不知道应该将while语句放在哪里。我试着把if语句放在上面,我试着把它放在下面,然后把它添加到每个if和else if语句中,但仍然无法让它工作。在if和else-if语句中,应该在哪里放置while循环,以获得运行while循环的所有选项?

while (input.toUpperCase().equals("y"))
System.out.println("Do you want to continue? (y/n)");
input = calc.nextLine();

import java.util.Scanner;

public class loops { 

public static void main(String[] args) {

Scanner calc = new Scanner (System.in);
double firstNum, secondNum, answer;
String input = "";

System.out.println("what would you like to do");
System.out.println("a. Add two numbers. ");
System.out.println("b. Subtract two numbers. ");
System.out.println("c. Multiply two numbers. ");
System.out.println("d. Divide two numbers. ");
System.out.println("Select a letter");
input.calc.nextLine();

if (input.equals("a")) {

System.out.println("Please enter your first number: ");
firstNum = calc.nextDouble();
System.out.println("Enter your second number: ");
secondNum = calc.nextDouble();

answer = firstNum + secondNum;
System.out.println("your answer is: " + String.valueOf (answer));

else if (input.equals("b")) {
System.out.println("Please enter your first number: ");
firstNum = calc.nextDouble();
System.out.println("Enter your second number: ");
secondNum = calc.nextDouble();

answer = firstNum - secondNum;
System.out.println("your answer is: " + String.valueOf (answer));
}

}
}
}

共有3个答案

靳越
2023-03-14

您可以使用do-time循环来实现您的功能。do-time将至少执行一次,然后检查连续运行表达式的真假。

您的代码有2个职责:

1. calculate the sum of 2 numeric inputs.
2. checks continuous calculating or not.

其中一个解决方案是将这两个功能分离,并使添加/删除其中任何一个功能变得更容易。测试/调试代码很容易。

import java.util.*;

public class Test{
    static Scanner calc = new Scanner(System.in);
    static String input ="";
    static boolean keepRunning = false;
    double firstNum, secondNum, answer;


    public static void main(String[]args){
        Test test = new Test();
        do{
            test.calculate(calc);  // calculate your 2 numeric inputs

            // update boolean flag indicate continuous calculating or stop
            System.out.print("Do you want to continue? (y/n)");
            input = calc.next();
            keepRunning = input.toLowerCase().equals("y");
        }while(keepRunning);

    }

    public void calculate(Scanner calc){
        System.out.print("Please ,enter your first number:  ");
        firstNum = calc.nextDouble();
        System.out.print("Enter your second number: ");
        secondNum = calc.nextDouble();

        answer = firstNum + secondNum;
        System.out.println("Your answer is: " + String.valueOf(answer));
    }
}
双元魁
2023-03-14

正如前面指出的,应该使用do while循环,但是如果您想使用while循环,那么您的代码应该如下所示-

Scanner calc = new Scanner(System.in);
double firstNum, secondNum, answer;
String input ="y";



  while (input.toUpperCase().equals("y")) {
        System.out.print("Do you want to continue? (y/n)");
        input = calc.nextLine();
        if (input.equals("a")) {
             System.out.print("Please ,enter your first number:  ");
             firstNum = calc.nextDouble();
             System.out.print("Enter your second number: ");
             secondNum = calc.nextDouble();

             answer = firstNum + secondNum;
             System.out.println("Your answer is: " + String.valueOf(answer));    
             }
    }
宗政招
2023-03-14

我认为在这种情况下,您应该在while中放入if-else。看起来您希望在特定情况下执行if,因此正确的方法是使用某种条件循环围绕if(如果您希望它至少运行一次,这里也可以使用do)。

编辑:您还需要在时修复上的条件。如问题评论中所述,输入。toUpperCase()。等于(“y”)的计算结果永远不会为true。

 类似资料:
  • 所以程序应该是:-获取用户的输入,直到用户键入“n或N”以显示停止的标志-当用户键入“n或N”时,程序正数和负数和。 还有我得到的 这个错误信息,我不知道是什么问题。提前谢谢你!

  • 本文向大家介绍ASP中if语句、select 、while循环的使用方法,包括了ASP中if语句、select 、while循环的使用方法的使用技巧和注意事项,需要的朋友参考一下 具体的介绍就不多说了,大家看下实例就可以了 考虑后期的便于阅读,呐喊教程小编再为大家整理一下 asp if语句 ①if A then B ②if A then B end if ③if A then B else C e

  • Python 中,while 循环和 if 条件分支语句类似,即在条件(表达式)为真的情况下,会执行相应的代码块。不同之处在于,只要条件为真,while 就会一直重复执行那段代码块。 while 语句的语法格式如下: while 条件表达式:     代码块 这里的代码块,指的是缩进格式相同的多行代码,不过在循环结构中,它又称为 循环体。 while 语句执行的具体流程为:首先判断条件表达式的值,

  • 所以我有一个简单的问题,我不是那么确定该怎么做,即使在尝试了相当长的一段时间。 我的问题是,我不太确定要键入什么,这样我的输入用户必须键入是或否,而不是键入其他东西。此外,当我尝试运行程序时,当我键入yes/no时,它直接跳转到else语句,而不是if语句。请帮忙:((我只是一个noob程序员)

  • 我有一个380行20列的表格。我想从该表中删除符合特定条件的行。 为了澄清问题,假设我有以下列表: 我想删除在列表中找到姓名的所有人员的数据。 例如,假设我的数据如下所示: 我想删除、和的数据。所以输出应该是: 我的代码正在运行,但数据没有从我的原始数据中删除。当我打开新的测试.txt文件时,我可以看到数据没有被删除。 我可以肯定错误在< code > if data[row][0]= =(I f

  • 我正在做一个项目,帮助客人报名参加派对。 当事人必须存在于数据中 当然,想要的票的数量必须少于可用的票 我真的很难再添加一个条件——检查输入是否高于0。 我将整个for循环放入了另一个if语句中,正如您所看到的:if(ticketsWanted) 如果输入了低于1的内容,它会打印“请输入正数” 然而,它也打印了“这个派对不存在或者已经预订满了。”又来了... 基本上是在系统之后。出来println