名医指导 足不出户寻医问药
聚焦健康 权威的健康资讯
您的位置: 首页> 正文

关于在if()里面用& 和&& | 和 ||的区别

发布网友 发布时间:2024-10-24 09:44

我来回答

5个回答

热心网友 时间:2024-11-14 11:29

是什么编程语言?C还是Verilog?
我暂且假定是C
这几个符号的区别在于作用对象。&是逻辑量按位取与,也就是两个逻辑量一位一位地进行“与”运算。两边操作数的第一位上都是1时,结果的第一位值为1。否则该位值为0,其他位同理。
比如
B00010010&B00100011,按位计算结果为B00000010,
&&则是两个布尔变量(就是只有真和假两种值的变量)的运算,只有两个布尔变量都为“真”时,这个式子的结果才是“1”或者“真”,比如if (a=0 && b=1)就是说只有当a=0且b=1时才符合条件。
同样 | 是逻辑变量的运算,取“或”,|| 则是布尔变量的运算,取“或”

热心网友 时间:2024-11-14 11:29

&是位与操作,一定会执行; &&是逻辑与操作,如果&&的前面为false了,后面的就不会执行了。

|是位或操作、一定会执行; || 是逻辑或操作,如果||的前面为true了,||的后面就不会执行了。

热心网友 时间:2024-11-14 11:30

a&&b 如果a为true,编译器不知道整个表达式是true还是false所以,必须执行b确定
如果a为false,编译器知道整个结果是false,b就不执行了
a||b 同理,如果a为true ,编译器知道整个表达式是true,就不执行b了,
但是 如果a为false 编译器还要执行,判定最后的结果
& 与运算
| 或运算
这两个 你只要记住 1&1=1 1&0=0 0&0=0 1 | 1=1 1|0=1 0 |0=0 就可以了

热心网友 时间:2024-11-14 11:30

...你反了一个严重的错误~~~~~~&和|的值不是blooean的~~~~~~~~而是一个int .....
if()里只接受blooean型的结果 所以
if(a!=null&a.Length>0) {}

if(a!=null | a.Length==0) {}

这些都不能通过编译(如果是C语言的话可以通过编译......因为c语言了if括号的值可以是数组1为真0为假)..
其实你上边的例子我没有测试 不过可能会通过编译 因为有运算符的优先级不过如果这么写的话
if((a!=null )| (a.Length==0)) {}是肯定通不过编译的追问简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。
区别主要答两点:
a.条件操作只能操作布尔型的,而逻辑操作不仅可以操作布尔型,而且可以操作数值型
b.逻辑操作不会产生短路

这个怎么解释?

追答.好吧 你赢了 我错了
public class ttttz {
/**
* @param args
*/
static boolean s (int[] sx)
{
sx[0]=10;
return true;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int x[] = new int[1];
x[0]=1;
if((x[0]==5)&&ttttz.s(x))
{
/*这里使用了&& 必须&&的前后的值都是真结果才为真 如果第一个结果为假的话 后边的
ttttz.s(x) 就不会被执行这个时候x的值还是1 */
}
System.out.print(x[0]);

if((x[0]==5)&ttttz.s(x))
{
/*用&的话 后边de ttttz.s(x)也会被执行 这就是你上边说的 b逻辑操作不会产生短路
|和||也是同理 ||的话如果左边的返回值是真的话那右边的表达式就不会被执行了 用|的不管左边的值是什么右边的表达式都会被执行
*/

}
System.out.print(x[0]);

}
}

这个例子虽然有点傻但是完全却能说明你说的东西

热心网友 时间:2024-11-14 11:31

&&是“和”、“且”的意思(and)
||是“或”的意思(or)
&、| 是位运算,&位和,|位与

热心网友 时间:2024-11-14 11:29

是什么编程语言?C还是Verilog?
我暂且假定是C
这几个符号的区别在于作用对象。&是逻辑量按位取与,也就是两个逻辑量一位一位地进行“与”运算。两边操作数的第一位上都是1时,结果的第一位值为1。否则该位值为0,其他位同理。
比如
B00010010&B00100011,按位计算结果为B00000010,
&&则是两个布尔变量(就是只有真和假两种值的变量)的运算,只有两个布尔变量都为“真”时,这个式子的结果才是“1”或者“真”,比如if (a=0 && b=1)就是说只有当a=0且b=1时才符合条件。
同样 | 是逻辑变量的运算,取“或”,|| 则是布尔变量的运算,取“或”

热心网友 时间:2024-11-14 11:29

&是位与操作,一定会执行; &&是逻辑与操作,如果&&的前面为false了,后面的就不会执行了。

|是位或操作、一定会执行; || 是逻辑或操作,如果||的前面为true了,||的后面就不会执行了。

热心网友 时间:2024-11-14 11:30

a&&b 如果a为true,编译器不知道整个表达式是true还是false所以,必须执行b确定
如果a为false,编译器知道整个结果是false,b就不执行了
a||b 同理,如果a为true ,编译器知道整个表达式是true,就不执行b了,
但是 如果a为false 编译器还要执行,判定最后的结果
& 与运算
| 或运算
这两个 你只要记住 1&1=1 1&0=0 0&0=0 1 | 1=1 1|0=1 0 |0=0 就可以了

热心网友 时间:2024-11-14 11:30

...你反了一个严重的错误~~~~~~&和|的值不是blooean的~~~~~~~~而是一个int .....
if()里只接受blooean型的结果 所以
if(a!=null&a.Length>0) {}

if(a!=null | a.Length==0) {}

这些都不能通过编译(如果是C语言的话可以通过编译......因为c语言了if括号的值可以是数组1为真0为假)..
其实你上边的例子我没有测试 不过可能会通过编译 因为有运算符的优先级不过如果这么写的话
if((a!=null )| (a.Length==0)) {}是肯定通不过编译的追问简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。
区别主要答两点:
a.条件操作只能操作布尔型的,而逻辑操作不仅可以操作布尔型,而且可以操作数值型
b.逻辑操作不会产生短路

这个怎么解释?

追答.好吧 你赢了 我错了
public class ttttz {
/**
* @param args
*/
static boolean s (int[] sx)
{
sx[0]=10;
return true;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int x[] = new int[1];
x[0]=1;
if((x[0]==5)&&ttttz.s(x))
{
/*这里使用了&& 必须&&的前后的值都是真结果才为真 如果第一个结果为假的话 后边的
ttttz.s(x) 就不会被执行这个时候x的值还是1 */
}
System.out.print(x[0]);

if((x[0]==5)&ttttz.s(x))
{
/*用&的话 后边de ttttz.s(x)也会被执行 这就是你上边说的 b逻辑操作不会产生短路
|和||也是同理 ||的话如果左边的返回值是真的话那右边的表达式就不会被执行了 用|的不管左边的值是什么右边的表达式都会被执行
*/

}
System.out.print(x[0]);

}
}

这个例子虽然有点傻但是完全却能说明你说的东西

热心网友 时间:2024-11-14 11:31

&&是“和”、“且”的意思(and)
||是“或”的意思(or)
&、| 是位运算,&位和,|位与

热心网友 时间:2024-11-14 11:29

是什么编程语言?C还是Verilog?
我暂且假定是C
这几个符号的区别在于作用对象。&是逻辑量按位取与,也就是两个逻辑量一位一位地进行“与”运算。两边操作数的第一位上都是1时,结果的第一位值为1。否则该位值为0,其他位同理。
比如
B00010010&B00100011,按位计算结果为B00000010,
&&则是两个布尔变量(就是只有真和假两种值的变量)的运算,只有两个布尔变量都为“真”时,这个式子的结果才是“1”或者“真”,比如if (a=0 && b=1)就是说只有当a=0且b=1时才符合条件。
同样 | 是逻辑变量的运算,取“或”,|| 则是布尔变量的运算,取“或”

热心网友 时间:2024-11-14 11:29

&是位与操作,一定会执行; &&是逻辑与操作,如果&&的前面为false了,后面的就不会执行了。

|是位或操作、一定会执行; || 是逻辑或操作,如果||的前面为true了,||的后面就不会执行了。

热心网友 时间:2024-11-14 11:30

a&&b 如果a为true,编译器不知道整个表达式是true还是false所以,必须执行b确定
如果a为false,编译器知道整个结果是false,b就不执行了
a||b 同理,如果a为true ,编译器知道整个表达式是true,就不执行b了,
但是 如果a为false 编译器还要执行,判定最后的结果
& 与运算
| 或运算
这两个 你只要记住 1&1=1 1&0=0 0&0=0 1 | 1=1 1|0=1 0 |0=0 就可以了

热心网友 时间:2024-11-14 11:31

...你反了一个严重的错误~~~~~~&和|的值不是blooean的~~~~~~~~而是一个int .....
if()里只接受blooean型的结果 所以
if(a!=null&a.Length>0) {}

if(a!=null | a.Length==0) {}

这些都不能通过编译(如果是C语言的话可以通过编译......因为c语言了if括号的值可以是数组1为真0为假)..
其实你上边的例子我没有测试 不过可能会通过编译 因为有运算符的优先级不过如果这么写的话
if((a!=null )| (a.Length==0)) {}是肯定通不过编译的追问简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。
区别主要答两点:
a.条件操作只能操作布尔型的,而逻辑操作不仅可以操作布尔型,而且可以操作数值型
b.逻辑操作不会产生短路

这个怎么解释?

追答.好吧 你赢了 我错了
public class ttttz {
/**
* @param args
*/
static boolean s (int[] sx)
{
sx[0]=10;
return true;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int x[] = new int[1];
x[0]=1;
if((x[0]==5)&&ttttz.s(x))
{
/*这里使用了&& 必须&&的前后的值都是真结果才为真 如果第一个结果为假的话 后边的
ttttz.s(x) 就不会被执行这个时候x的值还是1 */
}
System.out.print(x[0]);

if((x[0]==5)&ttttz.s(x))
{
/*用&的话 后边de ttttz.s(x)也会被执行 这就是你上边说的 b逻辑操作不会产生短路
|和||也是同理 ||的话如果左边的返回值是真的话那右边的表达式就不会被执行了 用|的不管左边的值是什么右边的表达式都会被执行
*/

}
System.out.print(x[0]);

}
}

这个例子虽然有点傻但是完全却能说明你说的东西

热心网友 时间:2024-11-14 11:31

&&是“和”、“且”的意思(and)
||是“或”的意思(or)
&、| 是位运算,&位和,|位与

热心网友 时间:2024-11-14 11:29

是什么编程语言?C还是Verilog?
我暂且假定是C
这几个符号的区别在于作用对象。&是逻辑量按位取与,也就是两个逻辑量一位一位地进行“与”运算。两边操作数的第一位上都是1时,结果的第一位值为1。否则该位值为0,其他位同理。
比如
B00010010&B00100011,按位计算结果为B00000010,
&&则是两个布尔变量(就是只有真和假两种值的变量)的运算,只有两个布尔变量都为“真”时,这个式子的结果才是“1”或者“真”,比如if (a=0 && b=1)就是说只有当a=0且b=1时才符合条件。
同样 | 是逻辑变量的运算,取“或”,|| 则是布尔变量的运算,取“或”

热心网友 时间:2024-11-14 11:29

&是位与操作,一定会执行; &&是逻辑与操作,如果&&的前面为false了,后面的就不会执行了。

|是位或操作、一定会执行; || 是逻辑或操作,如果||的前面为true了,||的后面就不会执行了。

热心网友 时间:2024-11-14 11:30

a&&b 如果a为true,编译器不知道整个表达式是true还是false所以,必须执行b确定
如果a为false,编译器知道整个结果是false,b就不执行了
a||b 同理,如果a为true ,编译器知道整个表达式是true,就不执行b了,
但是 如果a为false 编译器还要执行,判定最后的结果
& 与运算
| 或运算
这两个 你只要记住 1&1=1 1&0=0 0&0=0 1 | 1=1 1|0=1 0 |0=0 就可以了

热心网友 时间:2024-11-14 11:31

...你反了一个严重的错误~~~~~~&和|的值不是blooean的~~~~~~~~而是一个int .....
if()里只接受blooean型的结果 所以
if(a!=null&a.Length>0) {}

if(a!=null | a.Length==0) {}

这些都不能通过编译(如果是C语言的话可以通过编译......因为c语言了if括号的值可以是数组1为真0为假)..
其实你上边的例子我没有测试 不过可能会通过编译 因为有运算符的优先级不过如果这么写的话
if((a!=null )| (a.Length==0)) {}是肯定通不过编译的追问简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。
区别主要答两点:
a.条件操作只能操作布尔型的,而逻辑操作不仅可以操作布尔型,而且可以操作数值型
b.逻辑操作不会产生短路

这个怎么解释?

追答.好吧 你赢了 我错了
public class ttttz {
/**
* @param args
*/
static boolean s (int[] sx)
{
sx[0]=10;
return true;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int x[] = new int[1];
x[0]=1;
if((x[0]==5)&&ttttz.s(x))
{
/*这里使用了&& 必须&&的前后的值都是真结果才为真 如果第一个结果为假的话 后边的
ttttz.s(x) 就不会被执行这个时候x的值还是1 */
}
System.out.print(x[0]);

if((x[0]==5)&ttttz.s(x))
{
/*用&的话 后边de ttttz.s(x)也会被执行 这就是你上边说的 b逻辑操作不会产生短路
|和||也是同理 ||的话如果左边的返回值是真的话那右边的表达式就不会被执行了 用|的不管左边的值是什么右边的表达式都会被执行
*/

}
System.out.print(x[0]);

}
}

这个例子虽然有点傻但是完全却能说明你说的东西

热心网友 时间:2024-11-14 11:31

&&是“和”、“且”的意思(and)
||是“或”的意思(or)
&、| 是位运算,&位和,|位与
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
网络知识产权侵权怎么办 知识产权一般侵权行为怎样处理 知识产权外观设计侵权怎么处理 石料加工服务可以全部交给第三人完成吗 山东沃尔德集团集团所辖公司介绍 齐鲁银行无忧贷和市民贷哪个好 什么叫补按揭 后按揭贷款什么意思 买房者续按揭有什么危害 加按揭是什么意思 八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 变形金刚08动画的问题 变形金刚08动画日语版剧情介绍 高分!换显卡nvidia控制面板被我卸了,重新安装显卡驱动后没了nvidia控... 我的nvidia控制面板被卸载了 怎么找回啊 卸载后 这个画面看着很奇怪_百 ... 李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 从御景阁小区到新火车站驾车如何走 在马来西亚买了很多手工皂,大约80块,走浦东机场托运会被扣吗? 酷狗和千千静听有啥区别?求大神帮助 什么播放器最好用求大神帮助 ...今天去自动存取款机上存钱。本来要存1700RMB进去的。第一次只识别... 真的很可惜!双色球红球我中了5位数,如果再中一位数就是二等奖。真可惜... ...如果在吉隆坡商场买东西,等回国的时候需要到机场退税么? 各位没有立案能刑事拘留吗 昨天存钱,2000存款机,提款机点了数。只有16张,有四张没识别。然后我_百... 2月3日到农行存钱放入2000元有300元不能识别取出。取出以后。机器还是... 双色球前红的六位数中间,中了其中的一位数有奖吗? 医院事业编制能开公司吗? 不立案能被刑事拘留吗 顺丰快递从深圳发货到兰州时间多长 atm无卡存卡实存2000 才存进1700是怎么回事! Verilog中 &&和&的区别 郑州隆兴御景阁价格怎么样?单价是多少? 未立案能否采取强制措施 什么直播平台用代金券 专升本省外容易吗 坐轿子怎么造句 郑州隆兴御景阁价格怎么样?单价是多少? "各位老师(女性),下午好!" 用英语翻译 文曲星的音乐歌词怎么搞上去求大神帮助 怎么向+在手机里的歌曲弄出歌词啊求大神帮助 请帮我用英语翻译:各位老师下午好,我应聘的学科是 红外线摄像头基本信息 verilog语言中@(posedgeiclk)和alway@(posedgeiclk)的区别? 卓依婷2016巡回演唱会上海站是什么时候 南宁恒大绿洲产权多久 小独搂,高三层,八抬轿.几人行 有红外线的,有夜视功能的单筒望远镜什么价格随便什么嘛牌子。主要看东西... 六百乘一百五桥架平移500长度2.1米抽取多少? 哈啰顺风车事先多久取消无责? 双流区企业资质办理公司 支持红外和USB的手机传输问题 红外线理疗仪USB连接器能在江浙沪(长江三角洲)销售的有哪些品牌? 福建君来律师事务所余开来主任律师可靠吗? 校园生活中办事公道主要体现在哪些方面 在如图所示的电路中,一带电油滴悬浮在平行板电容器两极板a、b之间的...
  • 焦点

最新推荐

猜你喜欢

热门推荐