关于eclipse的使用问题

publicclassBMICalculator{publicstaticvoidmain(Stringargs[]){intweight=Integer.parseIn... public class BMICalculator{
public static void main (String args[]){
int weight = Integer.parseInt(args[0]);
int hight = Integer.parseInt(args[1]);
double BMI = weight/(hight*hight/10000.0);
if (BMI<18.5){
System.out.println("Your weight:"+weight+"kg");
System.out.println("Your height:"+hight+"cm");
System.out.printf("Your BMI: %.2f\n",BMI);
System.out.println("You are in the underweight range.");
} else if (BMI>=18.5&&BMI<25){
System.out.println("Your weight:"+weight+"kg");
System.out.println("Your height:"+hight+"cm");
System.out.printf("Your BMI: %.2f\n",BMI);
System.out.println("You are in the normal range.");
} else if (BMI>=25&&BMI<30){
System.out.println("Your weight:"+weight+"kg");
System.out.println("Your height:"+hight+"cm");
System.out.printf("Your BMI: %.2f\n",BMI);
System.out.println("You are in the overweight range.");
} else if (BMI>=30){
System.out.println("Your weight:"+weight+"kg");
System.out.println("Your height:"+hight+"cm");
System.out.printf("Your BMI: %.2f\n",BMI);
System.out.println("You are in the obese range.");
}
}

}
这段程序在eclipse里运行的结果是Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at BMICalculator.main(BMICalculator.java:4)

为什么没有提示让我输入体重和身高啊?
展开
 我来答
liweiying3
2011-04-01
知道答主
回答量:13
采纳率:0%
帮助的人:7.1万
展开全部
呵呵 不是Eclipse的问题 是你对args[] 没有理解好 我给你搜了一个 例子,你好好看看吧:

java程序中String args[]起什么作用?

在下面这个程序中String args[]起什么作用?
java中为什么要写String args[]呢?
class Example{
public static void main(String args[]){
System.out.println("This is a simple Java program.");
}
}问题补充:

既然String args[]或者String[] args表示给主方法传一个字符串数组,那么System.out.println(args[]);为什么是错误,args[]不就是那个字符串This is a simple Java program吗?
String args[]与This is a simple Java program是什么关系?如果没关系,为什么程序中去掉String args[]会出现错误?
不带String args[]的main函数和带String args[]的main函数有什么区别吗?

答案 String[] args 这个字符串数组是保存运行main函数时输入的参数的,例如main函数所在的类名为test 那么你在cmd运行 java test a b c 时,args[0] = a ,args[1]=b, args[2]=c 你就可以在你的程序中调用你输入的这些变量了。

args[]不就是那个字符串This is a simple Java program吗?
-------完全不是的,你理解不对。这样好了,你在运行的时候加个参数,比如 java test XX。然后在你的main函数里面加这段话:System.out.println("arg is"+args[0]),然后看看输出是什么?
是不是这个:
This is a simple Java program
arg is XX

你还可以试试这样,在运行时输入java test xx yy zz,并且在你的main函数里面加这段话:System.out.println("arg is"+args[0]+" "+args[1]+" "+args[2]),然后看看输出是什么?
是不是:
This is a simple Java program
arg is xx yy zz

现在你理解了吗。。。

如果没关系,为什么程序中去掉String args[]会出现错误?
--------之所以去掉会出错在于,不带String args[]的main函数和带String args[]的main函数,本质上已经不是同一个函数了,java 本身不存在不带String args[]的main函数,所以当然出错了。
wczljc521
2011-03-26 · 超过24用户采纳过TA的回答
知道答主
回答量:118
采纳率:0%
帮助的人:76.7万
展开全部
本人JAVA新手说的不对不要喷我...ars[0]是什么东东,
我学的控制台输入是
Scanner scanner=new Scanner(System.in);
System.out.println("请输入身高:");
Double hitght=scanner.nextDouble();//也可以String hitght=scanner.nextline();然后转化hitght为
Double类型!
System.out.println("请输入体重:");
Double weight=scanner.nextDouble();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
酆玥U0
2011-03-26 · TA获得超过655个赞
知道小有建树答主
回答量:249
采纳率:0%
帮助的人:117万
展开全部
下标越界异常了,先DEBUG一下把错误改了呗。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式