我看了一些其他类似的帖子,但无法弄清楚解决方案,因此请提前感谢您寻找宝贵的意见。
我想要的内容:系统会要求您输入一个标记(+
,-
,/
),输出结果将显示& #34;您输入了减号" (如果您的输入为-
)
接受输入的类
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
我认为问题出现在我可能没有正确编写的循环中。你能指点我正确的方向吗?
答案 0 :(得分:4)
您需要将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");
}
}
答案 1 :(得分:2)
mySign
方法要求用户输入。因此,如果您拨打ts.mySign()
三次,它会向用户询问三次。但这就是您在if
和else
语句链中所做的事情。
您需要在ts.mySign()
语句之前只调用if
一次,将结果分配给变量,然后只检查每个变量中该变量的值{1}}陈述。
答案 2 :(得分:1)
您可以使用
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;
}
答案 3 :(得分:0)
你在if语句中调用了ts.mySign()3次。
将其称为一次并将其存储在variable
中,然后与您的星座进行比较。
即
char sign = ts.mySign();
if (sign == '+')
...