java - Java 变量未定义,但它是在开头定义的
问题描述
我的代码是在罗马等价物中转换一些整数。说整数 5 是罗马等价的“V”等等。我正在使用开关盒进行转换。但是它会抛出一个错误,即作为字符串类型变量的变量符号,这是未定义的。我在代码的顶部声明了这个变量。
换算表是这样的:
Symbol Value
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
import java.util.Scanner;
//Integer to Roman Conversion
public class integer_roman {
public static void main(String args[]){
Scanner in= new Scanner(System.in);
System.out.println("Enter the Integer number");
int number= in.nextInt();
String symbol;
switch (number){
case 1:
symbol="I";
break;
case 5:
symbol="V";
break;
case 10:
symbol="X";
break;
case 50:
symbol="L";
break;
case 100:
symbol="C";
break;
case 500:
symbol="D";
break;
case 1000:
symbol="M";
break;
}
System.out.println(symbol);
}
}
错误:错误:(34、28)java:变量符号可能尚未初始化
我无法弄清楚问题所在。如果有人有任何想法,请分享。
解决方案
首先将消息打印给用户,然后使用Scanner
.
其次,添加一个default:
初始化的地方symbol
,以防用户键入除了 switch 语句中定义的情况之外的其他内容。
public static void main(String args[]){
System.out.println("Enter the Integer number");
Scanner in= new Scanner(System.in);
int number= in.nextInt();
String symbol = null;
switch (number){
case 1:
symbol="I";
break;
case 5:
symbol="V";
break;
case 10:
symbol="X";
break;
case 50:
symbol="L";
break;
case 100:
symbol="C";
break;
case 500:
symbol="D";
break;
case 1000:
symbol="M";
break;
default:
symbol="Uknown number."
}
System.out.println(symbol);
}
推荐阅读
- python - 如何使用python将数据放入csv文件?
- android - 如何在滑动回收站视图项目时创建执行操作。就像在 gmail 应用程序中滑动删除选项一样。但不应删除回收站视图项
- java - 在调用 getter 方法时获取 NullPointerException
- ms-word - officejs:无法将超链接文本的下划线属性设置为 false
- c - 拆分 char[] 并将值存储在不同的数组中 C
- arrays - 如何找到所有大小为 k 的子数组的第 n 个最小值/最大值(滑动窗口问题)
- docker - 在火花中选择端口范围
- c# - 在 c# 中实现验证后,我在更新记录时遇到问题
- mysql - 如何计算具有垂直值的多列?
- sql - 有没有办法检测表格中的选定值