【发布时间】:2017-04-21 07:52:05
【问题描述】:
package com.company;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
int operator;
double number1, number2, result;
boolean ask = true;
while (ask) {
System.out.println("please select your operator:\n"
+ "1 for +\n" +
"2 for -\n" +
"3 for *\n" +
"4 for %\n" +
"");
operator = myScanner.nextInt();
System.out.println("you chose " + operator + " operator babe");
System.out.println("please enter your first number");
Scanner numberScanner = new Scanner(System.in);
number1 = numberScanner.nextDouble();
System.out.println("please enter your second number");
Scanner numberScanner2 = new Scanner(System.in);
number2 = numberScanner2.nextDouble();
switch (operator) {
case 1:
result = number1 + number2;
System.out.println("result is:" + result);
break;
case 2:
result = number1 - number2;
System.out.println("result is:" + result);
break;
case 3:
result = number1 * number2;
System.out.println("result is:" + result);
break;
case 4:
result = number1 / number2;
System.out.println("result is:" + result);
break;
default:
System.out.println("you chosen the wrong operator babe :)");
break;
}
System.out.println("do yo want to continue?\n" +
"y for yes\n" +
"n for no\n");
char askInput = myScanner.next().charAt(0);
if (askInput=='n') ask=false;
}
}
}
我的开关盒出了问题
如果我按任何数字或字母,如 5 或 6 或...它应该打印 you chose wrong operator。
我认为问题在于我的默认设置,但我不知道问题在哪里?
【问题讨论】:
-
实际上应该将
switch语句放在一个位置,然后再输入有效选项的数字,然后是第一个用户输入,而不是最后。当在第一次输入后,您立即开始读取两个数字并检查用户在之后选择的选项时,它应该如何告诉您这是错误的输入。尝试输入5,然后输入2个数字,然后您将收到您想要的消息。 -
在我选择例如 5 后,它会继续并接受 5,但从逻辑上讲,它不能接受 5,默认应该运行
标签: java switch-statement java.util.scanner