Java循环-不断请求用户输入

Java循环-不断请求用户输入,java,Java,我看了一些其他类似的帖子,但没有找到解决方案,因此寻找你的宝贵意见,提前谢谢 我想要什么:将要求您输入一个符号(+,-,/),输出将显示“您输入的减号”(如果您的输入是-) 接受输入的类 import java.util.Scanner; public class TakeSign { Scanner userInput = new Scanner(System.in); /*Create an object of scanner class*/ public char my

我看了一些其他类似的帖子,但没有找到解决方案,因此寻找你的宝贵意见,提前谢谢

我想要什么:将要求您输入一个符号(
+
-
/
),输出将显示“您输入的减号”(如果您的输入是
-

接受输入的类

import java.util.Scanner;

public class TakeSign {
    Scanner userInput = new Scanner(System.in); /*Create an object of scanner class*/

    public char mySign() { 
        System.out.print("Enter a sign: ");
        char input2 = userInput.next().charAt(0);
        return input2;
    }
}
主类

public class Main {
    public static void main (String[]args) {
        TakeSign ts = new TakeSign();
        if (ts.mySign() == '+') {
            System.out.println("You entered plus");
        }
        else if (ts.mySign() == '-') {
            System.out.println("You entered minus");
        }
        else if (ts.mySign() == '/') {
            System.out.println("You entered division");
        }
    }
}
问题

如果我的第一个输入是
/
(除法),我会被询问3次。我原以为只会被问一次

Enter a sign: /
Enter a sign: /
Enter a sign: /
You entered division

我认为问题出在循环中,我可能写得不对。你能给我指一下正确的方向吗?

mySign方法要求用户输入。因此,如果您调用
ts.mySign()
三次,它将询问用户三次。但这就是你在
if
else
语句链中所做的


您需要在
if
语句之前调用
ts.mySign()
一次,将结果分配给一个变量,然后只需在每个
if
语句中检查该变量的值。

您需要将
ts.mySign()
分配给一个变量,并在if语句中使用该变量

public static void main(String[] args) {
    TakeSign ts = new TakeSign();
    char sign = ts.mySign();
    if (sign == '+') {
        System.out.println("You entered plus");
    } else if (sign == '-') {
        System.out.println("You entered minus");
    } else if (sign == '/') {
        System.out.println("You entered division");
    }
}
您在if语句中调用了3次ts.mySign()

调用它一次,并将其存储在变量中,然后与符号进行比较

i、 e

你可以用

 switch( ts.mySign() ){
 case '+':
     System.out.println ("You entered plus");
     break;
 case '-':
     System.out.println ("You entered mimus");
     break;
 case '*':
     System.out.println ("You entered asterisk");
     break;
 case '/':
     System.out.println ("You entered slash");
     break;
 default:
     System.out.println ("Input error");
     break;
}

谢谢你,这就解释了问题。
 switch( ts.mySign() ){
 case '+':
     System.out.println ("You entered plus");
     break;
 case '-':
     System.out.println ("You entered mimus");
     break;
 case '*':
     System.out.println ("You entered asterisk");
     break;
 case '/':
     System.out.println ("You entered slash");
     break;
 default:
     System.out.println ("Input error");
     break;
}