java - 为什么我不能在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();
解决方案
您需要在 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();
推荐阅读
- python - 转换整数数组并计算总和
- jquery - form.serialise 将 null 返回给控制器
- python - 如何绘制过去一年两个数据框列的每最后 30 天的相关系数并绘制它?(熊猫)
- javascript - `Fetch``response.json()`不断出错
- python-2.7 - 是否有相反的方法可以找到两个人生日相同但不使用数学公式的给定 0.5 概率的人数?
- r - 如何从向量制作公式
- java - 用于替换第一个降价/标签符号的正则表达式
- django - 在 Django 2.2.5 中执行 Sum Distinct 时,“NoneType”对象没有属性“lower”。正在开发 Django 2.1.7
- python - 列表中的 x, *y 是什么意思在 python 中
- numpy - 在 3D 中按维度矢量化距离