java中能生成.class文件可是运行不了

代码如下:classisodd{/***@paramargs*/publicstaticvoidmain(String[]args){//TODO自动生成方法存根intn... 代码如下:

class isodd {

/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
int num = Integer.parseInt(args[0]);
String isodd ="输入的是";
if(num%2==0){
isodd +="偶数";
}
else {
isodd +="奇数";
System.out.println(isodd);

}

}

}
总是出现:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at isodd.main(isodd.java:9)
怎么回事?新手请教谢谢
展开
 我来答
xuygsuiyuan
2009-07-19 · TA获得超过795个赞
知道小有建树答主
回答量:221
采纳率:0%
帮助的人:169万
展开全部
你的程序首先有两个问题
第一个,Java明确规定,类名一定要大写,而你小写,虽然不会有错误,但是不规范。
第二个,System.out.println(isodd)地方不对,逻辑判断失误
但这两个错误都不会影响到程序正常运行。

而产生的错误是数组越界,为什么,因为你没有给数组传值啊,数组里面根本没东西。解决方法很简单,运行的时候,输入 java isodd 3,一定要给传值,可以传多个值,以空格分开,例如:java isodd 3 4 8 32,他只会判断第一个数是不是奇数或偶数

为什么main方法后面写 (String[] args) ,就说明它要接受一些参数,只是平时都是有JVM传送的,不用我们在意。但是你完全可以自己传值进去,所以你没有传值,却引用数组,肯定会产生错误。

你的程序标准应该是如此:
class Isodd {

/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
int num = Integer.parseInt(args[0]);
String isodd ="输入的是";
if(num%2==0){
isodd +="偶数";
}
else {
isodd +="奇数";

}
System.out.println(isodd);
}
}
pujia12345
2009-07-19 · TA获得超过3680个赞
知道大有可为答主
回答量:3456
采纳率:0%
帮助的人:2983万
展开全部
ArrayIndexOutOfBoundsException 数组下标越界
isodd.java:9 在这个文件9行

int num = Integer.parseInt(args[0]); //这里似乎args没有分配空间(地址0不不存在)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来自慧云寺婉若游龙的白玫瑰
2009-07-19 · TA获得超过699个赞
知道小有建树答主
回答量:267
采纳率:100%
帮助的人:287万
展开全部
Integer.parseInt()方法要求传入的字符串里的字符全是数字。
不好意思,我说错了,ls的应该是正解。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zcdrive
2009-07-19
知道答主
回答量:12
采纳率:0%
帮助的人:6.6万
展开全部
数组越界错误
String[] args 字符串数组转整型肯定数组越界啊
不知道你想要怎么个结果

-------------------------------------------------------
class isodd {

/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根

int num = Integer.parseInt("3");
String isodd ="输入的是";
if(num%2==0){
isodd +="偶数";
}
else {
isodd +="奇数";

}
System.out.println(isodd);
}

}

--------------------------------------------------

else {
isodd +="奇数";
System.out.println(isodd);

}
System.out.println(isodd);这句话应该写在外面吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式