java中if条件里面判断boolean值判断的true还是false?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中if条件里面判断boolean值判断的true还是false?相关的知识,希望对你有一定的参考价值。
请教下面这个题,会走if,我运行的是会了第一个输出a,但if里面判断的不是true吗?第一个里面我理解的是当a和b都不是true时,输出C,我觉得第二个才应该走啊,当a或者b不是true时,输出b,为什么走了第一个if,而且我把第一个if给注销掉,第二个if也没用,直接走第三个else了?为什么呢?java中if条件里面判断boolean值判断的true还是false?
boolean a=true,b=false;
if(!(a&&b))
System.out.print("a");
else if(!(a||b))
System.out.print("b");
else
System.out.print("c");
if判断的本来就是true和false,true就执行if语句,false就执行else语句
&&需要两个都为ture,那返回的才是ture,a和b其中有一个是false了,所以(a&&b)返回的是false,正好(a&&b)前面有个!号,是取反的,那if(!(a&&b))的结果就是ture了,所以就执行了System.out.print("a");
后面的else if() else 是不会执行的! 参考技术A 哈哈,这个if(!(a||b))你理解错了,a 和b都为false才会走的
"双或"以及"或",只要有一个为true结果就为true 参考技术B 首先(a&&b)应该是false,然后再取反则是true,所有第一个if会执行.
这个主要是是(a&&b)这句话,是要a和b都为真才为真,这里a=true,b=false.所以(a&&b)自然是false,然后再将这个false取反不就是true了,所以会执行第一条if. 参考技术C 为什么要写这么乱的判断
boolean aAndB = a&&b //----false
if(!aAndB) //-----true
追问
软考的题!
追答不管是什么,题可以这么出,但是代码这么些就很不好了。
参考技术D boolean a=true,b=false;if(!(a&&b))// a&&b=false,!(false)=true;也就是条件成立 就运行 输出 a.
System.out.print("a");
else if(!(a||b))//a||b=true;!(true)=false假如程序到这里了,但是条件不成立,则不会执行后面的语句 输出 b
System.out.print("b");
else
System.out.print("c");
对于if()语句的理解是:
if(条件)
语句1
else
语句2
当条件=true时执行语句1;条件=false时,执行语句2本回答被提问者采纳
if条件判断
if 条件判断的是布尔值,常用的有以下几种
1.in 在不在它里面,返回的是布尔值
names=‘zhangsan lisi xiaoming‘
print("zhangsan" in names)
返回结果:True
2.not in取反,不在它里面,返回的也是布尔值
names=‘zhangsan lisi xiaoming‘
print("MLing" not in
names)
返回结果:True
3.is判断内存地址一样不一样,返回的也是布尔值
Eg:不可变变量
name1=‘MLing‘ #定义一个字符串
name2=‘MLing‘ #定义一个字符串
print(name1 is name2)
print(id(name1)) #查看内存地址
print(id(name2)) #查看内存地址
返回结果:
True
797268818160
797268818160
Eg:可变变量
name1=[‘MLing1‘,‘MLing2‘] #定义一个列表
name2=[‘MLing1‘,‘MLing2‘] #定义一个列表
print(name1 is name2)
print(id(name1)) #查看内存地址
print(id(name2)) #查看内存地址
返回结果:
False
353605930632
353605944712
注意:只有不可变变量值一样的时候,对应的内存地址才是一样的,可变变量即使值是一样的,内存地址也是不一样的
4.or和and可以一起用,返回的也是布尔值
name1=input(‘请输入姓名:‘)
pwd2=input(‘请输入密码:‘)
if name1 ==‘zhangsan‘ or name1 ==‘lisi‘ and pwd2==‘123456‘ :
print(‘ture‘)
else:
print(‘false‘)
以上是关于java中if条件里面判断boolean值判断的true还是false?的主要内容,如果未能解决你的问题,请参考以下文章