黑马程序员技术交流社区
标题:
小问题希望大家解决一下
[打印本页]
作者:
ztwztw
时间:
2013-11-26 10:33
标题:
小问题希望大家解决一下
在教学视频中看到了这么一句话。
boolean b;
b=i<10|methodB(4);
b=i<10‖methoB(8);
这是什么意思
作者:
doitforyou
时间:
2013-11-26 10:40
这个就是定义一个boolean变量,然后对其进行赋值操作。
你所列出来的主要涉及到两个知识点:
1.运算优先级:先进行i<10的比较,然后进行methodB()的运算并返回相应值,最后进行逻辑运算。
2.|和||的区别:|不具有短路效应 ,|两边都要进行运算,然后得出结果。
||具有短路效应,如果其左边为true,则不会进行右边的运算,直接返回true。
作者:
freehiker
时间:
2013-11-26 10:45
楼上正解,这里主要学习的就是运算符顺序及|与||的区别。在面试题中也会出现,当然会比这个复杂一点,我朋友曾经遇上过 b = x>50&&y<30||x=30&&y>50||x<30&&y>50||x<-30&&y<50 类似的题,里面主要考的就是比较运算符的执行顺序,先考虑&&的结果再对其结果进行||运算
作者:
RuntimeError!
时间:
2013-11-26 10:47
1 定义一个布尔值变量b
2 比较i<10然后看后面的是否为真,然后把两者的布尔值做逻辑或判断赋值给b 这个是非短路
3 比较i<10,若成立直接赋值b为true,若不成立,判断后面的,然后把两者的逻辑或结果赋值给b 这种是短路
作者:
忄雾飞扬
时间:
2013-11-26 10:50
public class Demo5 {
//涉及到了基本整数变量i;由于需要被静态函数所以在这定义成了静态变量
static int i;
public static void main(String[] args) {
//这句话是定义了一个boolean型变量
boolean b;
//这句代码是将|符号两边进行或运算,一边为真即为真,两边都进行运算,
b = i < 10 | methodB(4);
//这句代码是将||符号两边都进行或运算,这个运算符具有短路效果,当运算符左边为true是即为true,不再运算右边,当左边为false时,才运算右边
b = i < 10 || methodB(8);
}
//由于代码中涉及到了这个函数,不知道你是怎么定义的,所以我在下面自己定义了一介返回值为boolean的methodB方法
private static boolean methodB(int j) {
return j>5?true:false;
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2