asp.net 逻辑操作符与(&&),或(||),非(!)

逻辑操作符与(&&),或(||),非(!)能根据参数的关系返回布尔值

public class bool{

public static void main(string [] args){

random rand=new random(47);

int i=rand.nextint(100);

int j=rand.nextint(100);

system.out.println(“i=” + i);

system.out.println(“j=” + j);

system.out.println(“i > j is” +( i>j));

system.out.println(“i < j is” +( i<j));

system.out.println(“i > =j is” +( i>=j));

system.out.println(“i <=j is” +( i<=j));

system.out.println(“i ==j is” +( i==j));

system.out.println(“i !=j is” +( i!=j));

system.out.println(“(i <10) && (j<10) is” +((i <10) && (j<10)));

system.out.println(“(i <10) || (j<10) is” +((i <10) ||(j<10)));

}

}

输出

i=58

j=55

i>j is true

i<j is false

i>= j is true

i<=j is false

i==j is false

i!=j is true

(i <10) && (j<10) is false

(i <10) ||(j<10) isfalse

与或非操作只能应用于布尔值,如果在应该是string值的地方使用了boolean的话,布尔值会自动转换成适当的形式。

应注意的是在程序上对浮点数的比较是非常严格的。

条件操作符

operator
use
description

&&
op1 && op2
当op1和op2都是true时,返回true ;如果op1的值是false,则不运算右边的操作数

||
op1 || op2
当op1和op2有一个是true时,返回true;如果op1的值是true,则不运算右边的操作数

!
! op
当op是false时,返回true;当op是true时,返回false

&
op(www.111cn.net)1 & op2
运算op1和op2;如果op1和op2都是布尔值,而且都等于true,那么返回true,否则返回false;如果op1和op2都是数字,那么执行位与操作

|
op1 | op2
运算op1和op2;如果op1和op2都是布尔值,而且有一个等于true,那么返回true,否则返回false;如果op1和op2都是数字,那么执行位或操作

^
op1 ^ op2
运算op1和op2;如果op1和op2不同,即如果有一个是true,另一个不是,那么返回true,否则返回false;如果op1和op2都是数字,那么执行位异或操作

短路
当使用逻辑操作符的时候会遇到一种短路状况。既一但能够明确无误地确定整个表达式的值,就不再计算表达式余下的部分了。因此,整个逻辑表达式靠后的部分有可能不再计算。下面的例子展示了短路现象

public class shortcircuit{

static boolean test1(int val){

system.out.println(“test1(“+val+”)”);

system.out.println(“result:”+(val<1));

return val<1

}

static boolean test2(int val){

system.out.println(“test1(“+val+”)”);

system.out.println(“result:”+(val<2));

return val<2

}

static boolean test3(int val){

system.out.println(“test1(“+val+”)”);

system.out.println(“result:”+(val<3));

return val<3

}

public static void main(string [] args){

boolean b=test1(0)&&test2(2)&&test3(2);

system.out.println(“expression is “ + b);

}

}

输出

test1(0)

result:true

test(2)

result:false

expression is false

由于调用了3个方法你会很自然的觉得3个方法应该都被运行,但实际上输出并非这样,因为在第二次测试产生一个false结果。由于这意味着整个表达式肯定为false,所以没必要继续计算剩余的表达式,那样只是浪费。“短路“一次正来源于此。实际上,逻辑上所有的逻辑表达式都有一部分不必计算,那将获得性能的提升。
from:http://www.111cn.net/net/net/37363.htm

时间: 2024-10-13 01:54:02

asp.net 逻辑操作符与(&&),或(||),非(!)的相关文章

9-Shell的逻辑操作符知识介绍-实践及企业案例脚本剖析

逻辑操作符 在[]和test中使用的逻辑操作符 在[[]]中使用的逻辑操作符 说明 -a && and与,两端都为真,则真 -o || or或,两端有一个为真则真 ! ! not非,相反则为真 提示: !中文意思是反:与一个逻辑值相反的逻辑值 -a中文意思与(and &&):两个逻辑值都为真,返回值才为真,反之为假 -o中文意思是或(or||):两个逻辑值只要有一个为真,返回值就为真 举例: [[email protected] ~]# [ $a -eq 2 -a $b -

Chapter3_操作符_逻辑操作符

逻辑操作符与(&&)或(||)非(^)能够对布尔类型的数据类型进行操作,并且生成布尔值,和关系操作符的产生的数据类型是一样的.需要注意的不多,有以下几点: (1)在需要使用string类型的地方使用了布尔类型的数据,编译器会自动调用布尔数据类型的toString()方法产生一个string类型对象. (2)使用逻辑操作符时会产生"短路"现象,即一旦能够明确这个逻辑表达式的值,余下的部分就不会进行计算了.这一机制会使程序获得潜在的性能提升. (3)在编写代码的时候注意区分

ASP.NET编辑与更新数据(非GridView控件实现)

Insus.NET在实现<ASP.NET开发,从二层至三层,至面向对象 (5)>http://www.cnblogs.com/insus/p/3880606.html 中,没有把数据编辑与更新功能一起演示,留下给网友们自由发挥,但是还是有网友想看看Insus.NET用实现方法. 以前Insus.NET的做法,是在GridView控件中进行.如这篇视频教程<GridView Edit Update Cancel Delete>http://www.cnblogs.com/insus/

(转载)你好,C++(17)0.1*10不等于1.0——4.1.4 关系操作符4.1.5 逻辑操作符

你好,C++(17)0.1*10不等于1.0——4.1.4 关系操作符4.1.5 逻辑操作符 4.1.4  关系操作符 在C++中,除了需要用算术操作符对数据进行加减乘除的算术操作之外,我们有时候还需要对数据之间的关系进行操作,也就是对两个数据进行大小比较,得出它们之间的大小关系.在现实世界中,这种大小关系的比较是非常常见的.例如,这家摊位上的西红柿5元一斤,而另外一家相同的西红柿却只卖3元一斤,5和3一比较,就知道第二家的西红柿更便宜了.我们说,程序是用来抽象和描述现实世界的,为了在程序中表达

Linux Shell脚本逻辑操作符简介

在写程序时,会用到条件判断,测试条件是否成立.很多时候,判断条件是多个的,这个时候需要用到逻辑操作符.shell脚本中常用的有哪些逻辑操作符呢? 1.逻辑与: -a 格式: conditon1 -a condition2 结果:codition1和conditon2 都为真,才返回真,否则返回假. 演示:测试可执行文件lnmp [plain] view plaincopy [[email protected] ~]# [ -x lnmp -a -f lnmp ]   #lmmp是可执行且是文件 

你好,C++(17)0.1*10不等于1.0——4.1.4 关系操作符4.1.5 逻辑操作符

4.1.4  关系操作符 在C++中,除了需要用算术操作符对数据进行加减乘除的算术操作之外,我们有时候还需要对数据之间的关系进行操作,也就是对两个数据进行大小比较,得出它们之间的大小关系.在现实世界中,这种大小关系的比较是非常常见的.例如,这家摊位上的西红柿5元一斤,而另外一家相同的西红柿却只卖3元一斤,5和3一比较,就知道第二家的西红柿更便宜了.我们说,程序是用来抽象和描述现实世界的,为了在程序中表达这种大小关系的比较,C++专门提供了关系操作符,包括“>”(大于).“>=”(大于或等于).

逻辑操作符、位操作符号的忽略点

研究生要毕业了,最近要开始找工作,随便翻看一下基础知识. 逻辑操作符和位操作符都是操作符分类中的一种. 说明两个问题: 第一:短路逻辑操作符和非短路逻辑操作符的区别 短路逻辑与(&&)    短路逻辑或(||)   非短路逻辑与(&)  非短路逻辑或(|) 短路的意思就是,计算左操作数后,如果能决定表达式的值,那就不计算右操作数. 如: if(1==2&&1==1)  //左操作数为假,表达式就一定为假了,就不计算右操作数了 非短路的意思就是,左右操作数都要计算完,

shell 的条件表达式及逻辑操作符简单介绍

查看系统的shell: cat /etc/shells 文件测试表达式: -f 文件  文件存在且为普通文件则真,即测试表达式成立. -d 文件  文件存在且为目录文件则真,即测试表达式成立. -s 文件  文件存在且文件大小不为0则真,即测试表达式成立. -e 文件  文件存在则真,即测试表达式成立.只要有文件就行,要区别 -f . -r 文件  文件存在且可读则真,即测试表达式成立. -w 文件 文件存在且可写则真,即测试表达式成立. -x 文件  文件存在且可执行则真,即测试表达式成立.

怎样用 Bash 编程:逻辑操作符和 shell 扩展

学习逻辑操作符和 shell 扩展,本文是三篇 Bash 编程系列的第二篇. Bash 是一种强大的编程语言,完美契合命令行和 shell 脚本.本系列(三篇文章,基于我的 三集 Linux 自学课程)讲解如何在 CLI 使用 Bash 编程. 第一篇文章 讲解了 Bash 的一些简单命令行操作,包括如何使用变量和控制操作符.第二篇文章探讨文件.字符串.数字等类型和各种各样在执行流中提供控制逻辑的的逻辑运算符,还有 Bash 中的各类 shell 扩展.本系列第三篇也是最后一篇文章,将会探索能重