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
asp.net 逻辑操作符与(&&),或(||),非(!)的更多相关文章
- java 运算符 与(&)、非(~)、或(|)、异或(^)逻辑操作符 与(&&) 或(||) 非(!)
按位与&: 只要对应的二个二进位都为1时,结果位就为1 按位或|:只要对应的二个二进位有一个为1时,结果位就为1 按位异或^:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1) ...
- Linux Shell脚本逻辑操作符简介
在写程序时,会用到条件判断,测试条件是否成立.很多时候,判断条件是多个的,这个时候需要用到逻辑操作符.shell脚本中常用的有哪些逻辑操作符呢? 1.逻辑与: -a 格式: conditon1 -a ...
- 逻辑操作符---Lua: and,or,not 对比 C++:&&,||,!
lua中有三个逻辑操作符:and,or,not(逻辑与,逻辑或,逻辑非),同样c++也有类似的三个逻辑操作符:&&,||,!(逻辑与,逻辑或,逻辑非).他们的运算对象就是真和假.lua ...
- 你好,C++(17)0.1*10不等于1.0——4.1.4 关系操作符4.1.5 逻辑操作符
4.1.4 关系操作符 在C++中,除了需要用算术操作符对数据进行加减乘除的算术操作之外,我们有时候还需要对数据之间的关系进行操作,也就是对两个数据进行大小比较,得出它们之间的大小关系.在现实世界中 ...
- Chapter3_操作符_逻辑操作符
逻辑操作符与(&&)或(||)非(^)能够对布尔类型的数据类型进行操作,并且生成布尔值,和关系操作符的产生的数据类型是一样的.需要注意的不多,有以下几点: (1)在需要使用string ...
- shell 的条件表达式及逻辑操作符简单介绍
查看系统的shell: cat /etc/shells 文件测试表达式: -f 文件 文件存在且为普通文件则真,即测试表达式成立. -d 文件 文件存在且为目录文件则真,即测试表达式成立. -s ...
- shell 逻辑操作符
Shell还提供了与( -a ).或( -o ).非( ! )三个逻辑操作符用于将测试条件连接起来,其优先级为:"!"最高,"-a"次之,"-o&qu ...
- python中的逻辑操作符
python中主要有三个逻辑操作符,分别是:and.or.not. and:且,所有人为真才为真. or:或,一个为正就是真. not:非,取反. >>> print(3>2 ...
- 怎样用 Bash 编程:逻辑操作符和 shell 扩展
学习逻辑操作符和 shell 扩展,本文是三篇 Bash 编程系列的第二篇. Bash 是一种强大的编程语言,完美契合命令行和 shell 脚本.本系列(三篇文章,基于我的 三集 Linux 自学课程 ...
随机推荐
- BZOJ1068 [SCOI2007]压缩 区间动态规划 字符串
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1068 题目概括 (其实是复制的) 给一个由小写字母组成的字符串,我们可以用一种简单的方法来压缩其中 ...
- 053 关于hive的存储格式
1.存储格式 textfile rcfile orc parquet 2.存储方式 按行存储 ->textfile 按列存储 ->parquet 3.压缩比 4.存储textfile的原文 ...
- html5 选择多张图片在页面内预览并上传到后台
版权声明:本文为博主原创文章,未经博主允许不得转载. http://blog.csdn.net/huangxin112/article/details/74956462 需求:点击选择图片(可选多张) ...
- pyinstaller打包pyqt文件(转)
pyinstaller打包pyqt文件 https://www.cnblogs.com/dcb3688/p/4211390.html 打包pyqt文件 如何将pyqt生成exe的二进制文件呢,p ...
- 对扫描的pdf文件生成目录
很多pdf文件是直接扫描生成的,于是它的内容都是一张张的图片,当然就更没有目录索引了. 有的时候想找某些内容,只能一点点的移动滚动条,非常不方便. 那么有什么方法能生成目录呢? 方法一:使用福昕pdf ...
- 51Nod.1244.莫比乌斯函数之和(杜教筛)
题目链接 map: //杜教筛 #include<map> #include<cstdio> typedef long long LL; const int N=5e6; in ...
- [BOI2004]Sequence 数字序列
Description: Hint: \(n<=10^5\) Solution: 首先考虑b不严格递增时的做法 发现当\(a[i]\)递增时\(b[i]\)直接取\(a[i]\)即可,否则此时需 ...
- JVM调优总结 -Xms -Xmx -Xmn -Xss(转)
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统下,一般限制在1.5G~2G:64为操作 ...
- CocosCreator动作系统
废话没有,直接上代码,有注释可以看的, cc.Class({ extends: cc.Component, properties: { player:{ default:null, type:cc.N ...
- 3DMax 2014中文版安装破解教程
周末的时候,因为帮忙别人做动画,要用到3dmax.然后发现自己真的很菜啊....弄了好久,然后终于阔以了,以后在慢慢研究.贴出详细的步骤: . 1.如果没有软件,就请自行下载[百度上很多的] 2.双击 ...