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?的主要内容,如果未能解决你的问题,请参考以下文章

关于java中的if语句

java 中 判断时间问题

JAVA if判断新手求解。

条件判断语句(if-else)

Java 基础(条件结构)

Java 基础(条件结构)