Java 验证char用户输入循环

Java 验证char用户输入循环,java,string,Java,String,我正在编写一个简单的计算器程序,用户输入两个整数和一个符号(+-*等),表示要应用于整数的运算(加、减、乘等),程序计算他们要求的内容 我有一个do-while循环,如果输入与给定符号不匹配,它会不断地请求输入 我试着比较它们,但我不成功,也不确定该怎么做 代码: Scanner scan=新的扫描仪(System.in); 整数num1,num2,和,差,积; 字符串a、b、c、userInput; 字符选择,加、减、次; System.out.print(第一个整数-->”; num1=sc

我正在编写一个简单的计算器程序,用户输入两个整数和一个符号(
+
-
*
等),表示要应用于整数的运算(加、减、乘等),程序计算他们要求的内容

我有一个
do-while
循环,如果输入与给定符号不匹配,它会不断地请求输入

我试着比较它们,但我不成功,也不确定该怎么做

代码:

Scanner scan=新的扫描仪(System.in);
整数num1,num2,和,差,积;
字符串a、b、c、userInput;
字符选择,加、减、次;
System.out.print(第一个整数-->”;
num1=scan.nextInt();
System.out.print(第二个整数-->”;
num2=scan.nextInt();
a=“+”;
b=“-”;
c=“*”;
加上=a.charAt(0);
减=b.字符(0);
次数=c.charAt(0);
做{
系统输出打印(“选择+-或*”;
userInput=scan.Next();
choice=userInput.charAt(0);
}而(选择!='+'| |选择!='-'| |选择!='*');
开关(选择){
案例1:
总和=num1+num2;
System.out.println(“总和为”+总和);
打破
案例2:
差值=num1-num2;
System.out.println(“差异为”+差异);
打破
案例3:
乘积=num1’num2;
System.out.println(“产品为”+产品);
打破
} 

您的代码中有一些错误,我已尝试更正它们。 看一看,

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

        int num1, num2, sum, difference, product;
        String userInput;
        char choice, plus, minus, times;

        System.out.println("First Integer: --> ") ;
        num1 = scan.nextInt();

        System.out.println("Second Integer: --> ") ;
        num2 = scan.nextInt();

        plus = '+';
        minus = '-';
        times = '*';

        do {
        System.out.println("Choose + - or *") ;
        userInput = scan.next();
        choice = userInput.charAt(0);
            
        }while(choice != '+' && choice != '-' && choice != '*');
        
        switch(choice) {
            case '+':
            sum = num1 + num2;
            System.out.println("Sum is " + sum);
            break;

            case '-':
            difference = num1 - num2;
            System.out.println("Difference is " + difference);
            break;

            case '*':
            product = num1 * num2;
            System.out.println("Product is " + product);
            break;
                 
            default :
                 System.out.println("Wrong Choice!");
                 break;
        }
    }
}

首先插入
'
标记,并在
中更改
&
&
,而(choice!='+'&&choice!='-'&&choice!='*')
始终粘贴问题中的错误或异常堆栈跟踪(作为文本)是一个好主意。我已经编辑了相同的答案@这是非常有用的!然而,我注意到当我进入时——第一次它告诉我它是错误的,但是当我再次进入时它工作了吗?我猜它起作用了,因为第二个提示符与第一个不同,在循环中。