一个简单的java程序

[复制链接]
查看11 | 回复3 | 2011-5-30 17:09:10 | 显示全部楼层 |阅读模式
代码如下:
public static void main(String[] args) {
                // TODO Auto-generated method stub
                int a,b,c;
                a=(int)(Math.random()*(20-0+1)+0);
                b=(int)(Math.random()*(20-0+1)+0);
                c=(int)(Math.random()*(20-0+1)+0);
                if((a+b)>c||(b+c)>a||(a+c)>b)
                        {double s=(a+b+c)/2;
               
double w=Math.sqrt(s*(s-a)*(s-b)*(s-c));
               
System.out.println("三角形三边长度为:"+a+","+b+","+c+",面积为:"+w);
                        }
                else
                        System.out.println("三角形三边长度为:"+a+","+b+","+c+"不能组成三角形");
                }
}
我的疑问是:为什么当生成的三个数不能构成三角形时不能执行else后面的语句?如“三角形三边长度为:8,18,6,面积为:NaN ”按照我的思路它应该是“三角形三边长度为:8,18,6,不能组成三角形 ”这是为什么呢?

回复

使用道具 举报

千问 | 2011-5-30 17:09:10 | 显示全部楼层
if((a+b)>c||(b+c)>a||(a+c)>b)这句话的意思是三个条件中任意一个为真该if就为真,就不会执行else,所以你要确定你是要用||(或)还是&&(与)....
回复

使用道具 举报

千问 | 2011-5-30 17:09:10 | 显示全部楼层
这个问题应该是你搞的时候出差错了...
回复

使用道具 举报

千问 | 2011-5-30 17:09:10 | 显示全部楼层
||是"或者"的意思吧应该用&&的吧...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行