繁体   English   中英

我的switch语句的默认语句未执行?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM