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("在这吃");
}
} 展开
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("在这吃");
}
} 展开
展开全部
如果其中有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);
...//其他的逻辑
}//其他的类似就行了
展开全部
可能不复合条件的那个地方的Double.parseDouble(text10.getText().trim());出异常了,所以就报错退出了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-12-16
展开全部
后面的应该用if(){
}
else if(){
}
else {
}
当第一个if语句不成立时,就执行下一条语句。
}
else if(){
}
else {
}
当第一个if语句不成立时,就执行下一条语句。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询