首页 > 解决方案 > 为什么我不能在case语句java中返回值

问题描述

我正在制作一个简单的程序,它使用1 到 10之间的随机数生成一个随机数学问题。运算符也将在+,- 和 *之间随机。当我尝试使用 case 语句并返回操作值并打印问题时(最后)它说没有操作变量。

    int number1 = (int)(Math.random()* 10) + 1;
    int number2 = (int)(Math.random()* 10) + 1;
    int operator = (int)(Math.random()* 3) + 1;


        switch (operator){
            case 1: {
                String operation = "+";
                int correctResult = number1 + number2;
                break;
            }
            case 2: {
                String operation = "-";
                int correctResult = number1 - number2;
                break;
            }
            case 3: {
                String operation = "*";
                int correctResult = number1 * number2;
                break;
            }
        }
    System.out.print(number1+operation+number2+": ");
    String studentAnswer = scanner.next();    

标签: java

解决方案


您需要在 od switch 块之外声明操作:

int number1 = (int)(Math.random()* 10) + 1;
int number2 = (int)(Math.random()* 10) + 1;
int operator = (int)(Math.random()* 3) + 1;
String operation = null; // move outside of switch block
int correctResult; // move outside of switch block

    switch (operator){
        case 1: {
            operation = "+";
            correctResult = number1 + number2;
            break;
        }
        case 2: {
            operation = "-";
            correctResult = number1 - number2;
            break;
        }
        case 3: {
            operation = "*";
            correctResult = number1 * number2;
            break;
        }
    }
System.out.print(number1+operation+number2+": ");
String studentAnswer = scanner.next();    

推荐阅读