帮忙看一下:public class Try{
{
public static void main(String []args){
int num;
num=Integer.parseInt(args[0]);
if(num>=60){
System.out.println(num+"是及格成绩");
else
{
System.out.println(num+"不是及格成绩");
}
}
}
当该程序运行时为什么要输入参数?
还有 num=Integer.parseInt(args[0]);这句话中的parseInt()方法不是把args[]转变成数字吗?即使args[0]是字符形式,怎么运行时还出现一下错误?????????
java.lang.ArrayIndexOutOfBoundsException: 0
at Try.main(Try.java:16)
Exception in thread "main"
{
public static void main(String []args){
int num;
num=Integer.parseInt(args[0]);
if(num>=60){
System.out.println(num+"是及格成绩");
else
{
System.out.println(num+"不是及格成绩");
}
}
}
当该程序运行时为什么要输入参数?
还有 num=Integer.parseInt(args[0]);这句话中的parseInt()方法不是把args[]转变成数字吗?即使args[0]是字符形式,怎么运行时还出现一下错误?????????
java.lang.ArrayIndexOutOfBoundsException: 0
at Try.main(Try.java:16)
Exception in thread "main"
因为你用到args[0]啊,要求输入的参数
parseInt使String类型转换为一个十进制的有符号的整数
s - a String containing the int representation to be parsed Throws:
NumberFormatException - if the string does not contain a parsable integer.
你看看帮助文档吧
还有“有的带参数的程序运行时也不要求输入参数”
是因为程序中没用到参数啊
num=Integer.parseInt(args[0]);
args是一个数组型字符串,而运行时没有输入参数;,故args数组的长度为o,
java.lang.ArrayIndexOutOfBoundsException: 0
at Try.main(Try.java:16)
因此,系统报超斗数组范围错误。规则的写法,使用数组之前,必须判断数组是否为空及数组的长度。另外使用ParseInt方法时最好使用try
str为数值型字符串
还有'a'是字符 故可以自动转化为整型
但是"a"是字符串 它根本就没有ascii码的说法。
这里的 65 是赋值给 args[0] 的. 如果不写的话,那么args[0]将无值,在转换Integer.parseInt(args[0])时就会报NumberFormatException