Java 并列if语句,一个判断失败后,后面的if就不执行了,为什么啊?

我有10个并列的if语句,如果10个条件都符合时,能正确输出,但是如果其中有一个if的条件不符合,后面的程序就停止了,为什么啊?我的代码如下:publicvoidacti... 我有10个并列的if语句,如果10个条件都符合时,能正确输出,但是如果其中有一个if的条件不符合,后面的程序就停止了,为什么啊?我的代码如下:
public void actionPerformed(ActionEvent e)
{
double a[]=new double [10];
double sum=0;
a[0]=Double.parseDouble(text1.getText().trim());
if(a[0]>0)
{
sum=sum+20*a[0];
area.append("水煮肉片 "+a[0]+"份\n");
}
a[1]=Double.parseDouble(text2.getText().trim());
if(a[1]>0)
{
sum=sum+12*a[1];
area.append("宫保鸡丁 "+a[1]+"份\n");
}
a[2]=Double.parseDouble(text3.getText().trim());
if(a[2]>0)
{
sum=sum+10*a[2];
area.append("鱼香茄子 "+a[2]+"份\n");
}
a[3]=Double.parseDouble(text4.getText().trim());
if(a[3]>0)
{
sum=sum+11*a[3];
area.append("拔丝地瓜 "+a[3]+"份\n");
}
a[4]=Double.parseDouble(text5.getText().trim());
if(a[4]>0)
{
sum=sum+15*a[4];
area.append("酱香排骨 "+a[4]+"份\n");
}
a[5]=Double.parseDouble(text6.getText().trim());
if(a[5]>0)
{
sum=sum+10*a[5];
area.append("干炸蘑菇 "+a[5]+"份\n");
}
a[6]=Double.parseDouble(text7.getText().trim());
if(a[6]>0)
{
sum=sum+16*a[6];
area.append("红烧鲤鱼 "+a[6]+"份\n");
}
a[7]=Double.parseDouble(text8.getText().trim());
if(a[7]>0)
{
sum=sum+12*a[7];
area.append("川汤肥牛 "+a[7]+"份\n");
}
a[8]=Double.parseDouble(text9.getText().trim());
if(a[8]>0)
{
sum=sum+12*a[8];
area.append("青椒肉丝 "+a[8]+"份\n");
}
a[9]=Double.parseDouble(text10.getText().trim());
if(a[9]>0)
{
sum=sum+14*a[9];
}
area.append("土豆牛肉 "+a[9]+"份\n");
area.append("总价为:"+sum+"元\n");
if(radio1.isSelected())
area.append("打包走");
if(radio2.isSelected())
area.append("在这吃");
}

}
展开
 我来答
京鸿博0T
2011-12-16
知道答主
回答量:7
采纳率:0%
帮助的人:7831
展开全部
如果其中有text框没有输入,那么text.getText().trim()的值应该为空,怎么把它转换成Double类型的呢?对text加个判读即可:如果为空,将text的值设为0就行了。
追问
我觉的你说的很有道理,我加了句代码
a[0]=Double.parseDouble(text1.getText().trim());
if(a[0]=='\0')
a[0]=0;
if(a[0]>0)
{
sum=sum+20*a[0];
area.append("水煮肉片 "+a[0]+"份\n");
}
这样对嘛?我编译了一下,还是不行……
追答
还是那个问题,如果text.getText().trim()为空,打个断点你就会发现
a[0]=Double.parseDouble(text1.getText().trim());这一行会报错
a[0]是取不到值的,他也就更不可能等于0了。你可以这样写:
String textFlag0 = text1.getText().trim();
if(textFlag0==null||"".equals(textFlag0)){
a[0] = 0;
}else{
a[0] = Double.parseDouble(textFlag0);
...//其他的逻辑
}//其他的类似就行了
tooper2
推荐于2018-04-18 · TA获得超过1019个赞
知道小有建树答主
回答量:1137
采纳率:66%
帮助的人:1039万
展开全部
可能不复合条件的那个地方的Double.parseDouble(text10.getText().trim());出异常了,所以就报错退出了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-12-16
展开全部
后面的应该用if(){
}
else if(){
}
else {
}
当第一个if语句不成立时,就执行下一条语句。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
聪聪77abc
2019-07-22
知道答主
回答量:1
采纳率:0%
帮助的人:721
展开全部
楼主解决了吗,我也遇到了这问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式