[英]Default statement for my switch statement is not executing?
import java.util.Random; //Needed for Random Class
import java.util.Scanner; //Needed for Scanner Class
public class Project3
{
public static void main(String[] args)
{
//Declare Variables
double num1;
double num2;
int addition;
double division;
int multiplication;
int subtraction;
int modulus;
String mathOperation; //To get what type of problem user wants to do
//Create Scanner Object for kb input
Scanner kb = new Scanner(System.in);
//Create Random Object
Random randomNumbers = new Random();
//Get randomly generated numbers
num1 = randomNumbers.nextInt(10);
num2 = randomNumbers.nextInt(10);
//display randomly generated numbers for user
System.out.println("The numbers are " + num1 + " and " + num2);
//ask user which operation they want to do
System.out.println("Which arithmetic operation do you wish to use?"
+ " We can do addition, subtraction, multiplication, division, and modulus.");
mathOperation = kb.nextLine();
double guess=0;
System.out.println("What do you think the answer will be?");
guess = kb.nextDouble();
//Determine which arithmetic operation to be checked
switch (mathOperation)
{
case "addition":
System.out.println("The answer is: " + (num1 + num2));
if (guess == num1 + num2)
System.out.println("You are correct!");
else
System.out.println("You are wrong.");
break;
case "subtraction":
System.out.println("The answer is: " + (num1 - num2));
if (guess == num1 - num2)
System.out.println("You are correct!");
else
System.out.println("You are wrong.");
break;
case "multiplication":
System.out.println("The answer is: " + (num1*num2));
if (guess == num1 * num2)
System.out.println("You are correct!");
else
System.out.println("You are wrong.");
break;
//division - use WHILE selection statement
case "division":
while (num2 == 0)
{
System.out.println("Cannot determine answer since the divisor equals zero.");
num2++;
System.exit(1);
}
System.out.println( "The answer is: " + (num1/num2));
if (guess == num1 / num2)
System.out.println("You are correct!");
else
System.out.println("You are wrong.");
break;
case "modulus":
System.out.println( "The answer is: " + (num1 % num2));
if (guess == num1 % num2)
System.out.println("You are correct!");
else
System.out.println("You are wrong.");
break;
default:
System.out.println("Invalid choice.");
}
}
}
所有的代码都可以正常工作,但是我似乎无法使默认语句正常工作..不确定代码中是否存在某些错误,会阻止其工作,或者默认本身存在问题。 虽然,我看了看,看起来一切都正确。 真丢了..
查看此内容以了解为什么不能打开字符串(取决于您使用的btw版本): 为什么我不能打开字符串?
jdk 7示例:
http://docs.oracle.com/javase/7/docs/technotes/guides/language/strings-switch.html
我的两分钱:尽管不一定要在默认值上添加break,但是这样做是一个好习惯,因为这在您更改case语句的顺序时会有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.