关于java的一个小程序,帮忙找一下错~

问题:

我写的:

错误:

他是中间我输入的时候出错了,麻烦各位帮我找一下错~~~~~~~谢谢!

第1个回答  2013-09-27
看输出没有看到A或者S,你最好在switch之前判断一下factor是不是为空和是不是A或者S,不是的话重新输入,这样能保证代码逻辑的完整。追问

这个程序他是编译过了,但我在输完65后,按的回车,然后他就自己输出了下面那一堆东西。我根本就没机会按A或者S。我后来加了按你说的判断是不是null,但是还是和上面一样的情形,我没有机会写A/S。但后来我试了就是在65后面再输入A或S,他是可以成功的,但我是我想想让用户输入体重,再提示输入A或S,用户再输A或S,最后输出结果。我该怎么改?

下面是我加了判断的:

报错:

第2个回答  2013-09-28
public class Test1 {
public static void main(String[] args) {
int factor1 = 1;
double calory;
String message1;
Scanner sacan = new Scanner(System.in);
System.out.println("请输入第1个数:");
message1 = sacan.nextLine();
double weight = Double.parseDouble(message1);//字符串转整数
String message2;
System.out.println("确定要退出吗? A/S");
message2 = sacan.nextLine();
if("".equals(message2)){
System.out.println("确定要退出吗? A/S");
message2 = sacan.nextLine();
}else{
switch(message2.charAt(0)){
case 'A':
calory=15;
case 'B':
calory = 20;
}
}
calory = factor1 * weight;
System.out.println(calory);

}
已测试
结果输出正确
第3个回答  2013-09-27
你是没有输入直接按回车吧?这里可以先判断下factor的值是否正确再执行下面。追问

我的目的是让用户输完65后再按回车,提示输入A或S,用户输完A或S,回车,程序在计算,最后输出应该的值。但我这个是在65后面直接输入A或S,才可以成功,我该怎么改?

追答

你这样做是正确的,不过要改下

while(factor.equals("")){

    Syste...

    ..

}

facrot不是null

追问

可是还是不对啊。。。
程序根本就不给我输A/S的时间

追答

你把nextLine()换成next()

第4个回答  2013-09-27
数组下标越界
第5个回答  2013-09-27
请抛异常,这个代码会出现StringIndex。。。这个异常
相似回答
大家正在搜