gpt4 book ai didi

java - 当我运行 switch case 并选择一个选项时,它将不断循环该选项

转载 作者:行者123 更新时间:2023-12-01 23:19:35 25 4
gpt4 key购买 nike

我的目标是要求用户输入一个操作,它将从另一个进行基本计算的类中进行计算,然后它将获取结果,并要求用户再次选择一个操作,并继续相同的操作数字。或者选择C并将数字清0



import java.util.Scanner;

public class CalculatorClient {

public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);

System.out.println("Welcome to calculator\n You will be able to use this program to add, subtract, multiply, and divide values!\n");
double number1;
System.out.println("Enter a number: ");
number1 = keyboard.nextDouble();
Calculator obj1 = new Calculator(number1);
keyboard.nextLine();

// System.out.println("Please enter an operation ( + , - , / , *) :");
// input=keyboard.nextLine();

System.out.println("Please enter an operation ( + , - , / , *) :");
String input = keyboard.nextLine();;

我不知道为什么,但我用来测试运算符(operator)输入的 while 循环在运行时不起作用。

        while  (!"+".equals(input) || !"-".equals(input) || !"/".equals(input) || !"*".equals(input)) {
System.out.println("That is not a valid operation, please enter an operation ( + , - , / , *) :");
input = keyboard.nextLine();
}



int counter=0;
Loopy:
while(counter<1)

{
switch (input) {
case "+": {
int add;
System.out.println("Enter a second number to add: ");
add = keyboard.nextInt();
System.out.println("\nThe sum is: ");
System.out.println("The nubmer is now ");
System.out.println(obj1.getNumber());
System.out.println(obj1.add(add));
number1 = obj1.getNumber();
break;
}
case "-": {
int subtract;
System.out.println("Enter a second number to subtract: ");
subtract = keyboard.nextInt();
System.out.println("\nThe difference is: ");
System.out.println(obj1.subtract(subtract));
System.out.println("The nubmer is now ");
System.out.println(obj1.getNumber());
number1 = obj1.getNumber();
break;
}
case "/": {
int div;
System.out.println("Enter a second number to divide");
div = keyboard.nextInt();
System.out.println("\nThe quotient is: ");
System.out.println(obj1.divide(div));
System.out.println("The nubmer is now ");
System.out.println(obj1.getNumber());
number1 = obj1.getNumber();
break;
}
case "*": {
int times;
System.out.println("Enter a second nubmer to multiply");
times = keyboard.nextInt();
System.out.println("\nThe product is: ");
System.out.println("The nubmer is now ");
System.out.println(obj1.getNumber());
System.out.println(obj1.multiply(times));
number1 = obj1.getNumber();
break;
}
case "C": {
obj1.setNumber(number1);
System.out.println("The nubmer is now ");
System.out.println(obj1.getNumber());
break;

}
}

counter--;

由于某种原因,这个 println 最终打印了两次

        System.out.println("\nPlease enter an operation ( + , - , / , *) :");
input = keyboard.nextLine();
continue;
}
}
}

````

Here is my calculator program (My instruction is to make it on a separate file
````
public class Calculator
{
private double number;

Calculator(double x){number=x;}
Calculator(){}

public void setNumber(double x){number=x;}
public double getNumber(){return number;}



public double add(double a){
number+=a;
return (number);
}
public double subtract(double a){
number-=a;
return (number);
}

public double multiply(double a){
number*=a;
return (number);
}

public double divide(double a){
number/=a;
return (number);
}
}






最佳答案

我认为您的问题在以下几行中:int计数器=0;
循环: while(计数器<1)** 你的方法逻辑**最后——反--;

因此计数器始终小于 1,因此始终处于循环中

关于java - 当我运行 switch case 并选择一个选项时,它将不断循环该选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58332899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com