黑马程序员技术交流社区

标题: if else的问题 [打印本页]

作者: 高鑫    时间: 2012-4-25 02:45
标题: if else的问题
class Demo
{public static void main(String[]args)
        { boolean p=panduan(2,5);
                if (p)
                        System.out.println("相同");
                else System.out.println("不同");
       
        }
        public static boolean panduan(int a,int b)
        { if(a==b) return  true;
         if(a!=b) return false;

        }
}
写了这么个判断程序,为什么我定义的panduan函数部分,写 if(a==b) return  true;
         if(a!=b) return false; 错误,但是写if(a==b) return true;else return false正确?请解释下 2个的不同
作者: 陆强强    时间: 2012-4-25 07:20
一个问题两个if你让虚拟机先执行哪个?
最简单的办法两个IF都不用,
public static boolean panduan(int a,int b)
{
     return   a==b;
}
boolean的返回值本身就是TURE或FALSE

作者: liqian    时间: 2012-4-25 07:20
如果出现多个if,if语句就要使用嵌套,此时是这种条件下的其他小的条件。当同级条件较多时一般会使用复合 if- else if -else if...- else 语句,不会出现if-if的情况。
if-else语句规则:
1)、if后的括号不能省略,括号里表达式的值最终必须返回的是布尔值 。
2)、如果条件体内只有一条语句需要执行,那么if后面的大括号可以省略,但这是一种极为不好的编程习惯。
3)、对于给定的if,else语句是可选的,else if 语句也是可选的 。
4)、else和else if同时出现时,else必须出现在else if 之后 。   
5)、如果有多条else if语句同时出现,那么如果有一条else if语句的表达式测试成功,那么会忽略掉其他所有else if和else分支。      
6)、如果出现多个if,只有一个else的情形,else子句归属于最内层的if语句。
作者: 邵旭博    时间: 2012-4-25 07:55
我看了一下,如果你只打if(a==b)return true;也是不对的,不是后面if(a!=b)return false的问题,是这个函数既然设置了boolean返回值,就应该有个返回值,在编译的时候如果都是if的话系统就自动判断成错误,因为当如果都是if,if条件不成立就没有返回值了,这个时候系统只是编译过程,不会判断a==b的非就是a!=b
作者: 应佳锋    时间: 2012-4-25 08:18
因为你的函数返回 的是boolean类型 但是你用了条件语句 其实IDE没那么聪明 他并不知道  你输入 的一定会满足2个条件中的 另外一个
其实你这样判断就好比  IF(a==2) return true  if(a==3)return false  那如果2个条件都不满足呢 那不是没有返回值了啊
作者: 高彰谦    时间: 2012-4-25 08:33
  1. if(i==j) return  true;
  2. if(i!=j) return false;
复制代码
分支判断不完整,编译器并不会去判断两个连续的if语句是否构成严密,完整的分支。

作者: 盛光富    时间: 2012-4-25 08:40
只有两个结果判断你写出三个结果,肯定会报错的,
if(a==b) return  true;
if(a!=b) return false;
这是不能被Jvm识别的





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2