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)
怎么回事?新手请教谢谢 展开
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)
怎么回事?新手请教谢谢 展开
4个回答
展开全部
你的程序首先有两个问题
第一个,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);
}
}
第一个,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);
}
}
展开全部
ArrayIndexOutOfBoundsException 数组下标越界
isodd.java:9 在这个文件9行
int num = Integer.parseInt(args[0]); //这里似乎args没有分配空间(地址0不不存在)
isodd.java:9 在这个文件9行
int num = Integer.parseInt(args[0]); //这里似乎args没有分配空间(地址0不不存在)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Integer.parseInt()方法要求传入的字符串里的字符全是数字。
不好意思,我说错了,ls的应该是正解。
不好意思,我说错了,ls的应该是正解。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组越界错误
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);这句话应该写在外面吧。
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);这句话应该写在外面吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |