//i m doing this program for checking switch condition but there is an error
所以请你帮忙解决这个问题 公共课堂考试{
public static void main(String[] args) throws Exception
{
**char grade = args[0].charAt(0);**//here is the error
try {
switch (grade){
case A:{
System.out.println("CASE A");
break;
}
case 'B':{
System.out.println("CASE B");
}
case 'C':{
System.out.println("CASE C");
}
case 'D':{
System.out.println("CASE D");
}
default:
System.out.println("last");
}
} catch (Exception e) {
// TODO: handle exception
}
System.out.println("what is this");
}
}
java.lang.ArrayIndexOutOfBoundsException:0错误发生我应该如何解决它
答案 0 :(得分:3)
public static void main(String[] args) throws Exception
{
if(args.length>0){
**char grade = args[0].charAt(0);**//here is the error
}else{
char grade='F';
}
try {
switch (grade){
case 1:{
System.out.println("CASE A");
break;
}
case 'B':{
System.out.println("CASE B");
}
case 'C':{
System.out.println("CASE C");
}
case 'D':{
System.out.println("CASE D");
}
default:
System.out.println("last");
}
} catch (Exception e) {
// TODO: handle exception
}
System.out.println("what is this");
}
}
答案 1 :(得分:2)
看起来你正在执行它而不传递必要的参数。你确定要通过它们吗?
答案 2 :(得分:0)
您正在执行命令行参数。运行代码时参数。否则您将获得ArrayIndexOutOfBoundException
检查args[]
长度的长度,然后使用值
if(args.length>0)
答案 3 :(得分:0)
public static void main(String[] args)
是主线程。 args 是一个参数,用于存储我们在程序中传递的命令行参数。请通过传递以下参数来执行程序:
java ProgramName ThisIsArgument1 ThisIsArgument2 ManyMoreOptionalArguments
答案 4 :(得分:0)
当您通过命令行调用java程序时,如下所示:
java SwitchTest 1
这个人'String [] args'(这个字符串数组是主方法签名的一部分)将获取所有参数,即在命令执行程序后添加的元素({{1在这个例子中,它是java SwitchTest
。
如果您执行这样的程序,请使用您的代码:
1
您的输出应为:
java SwitchTest 1
如果您在没有任何参数的情况下执行(即CASE A
之后没有任何参数),您将获得java SwitchTest
。
答案 5 :(得分:0)
您是否将其传递给运行时参数?试试这个:
Command Line> java test A
或试试这个:
char grade = '[Char in here]';
这将是这样的:
char grade = 'A';