Java短路运算符和非短路运算符
在Java中短路运算符指的是"&&"(与) 和"||"(或) ,非短路运算符指的是"&" 和"|".
1.1短路运算符:顾名思义,短路运算符具有短路功能.
|-如果 "&&" 运算符的第一个表达式为false,则第二个表达式就不会执行
|-如果 "||" 运算符的第一个表达式为true,则第二个表达式就不会执行
例如:
public class Test {
public static void main(String[] args) {
int i = 0;
int j = 0;
if (++i > 0 || ++j > 0) {
System.out.println("i的值:" + i);
System.out.println("j的值:" + j);
}
}
}
因为++i>0为true 所以++j>0将不会被执行.
输出的结果就是:
i的值:1
j的值:0
1.2非短路运算符
非短路运算符不管第一个表达式是否可以得出最后结果,都要对第二个表达式进行判断.
public class Test {
public static void main(String[] args) {
int i = 0;
int j = 0;
if (++i > 0 | ++j > 0) {
System.out.println("i的值:" + i);
System.out.println("j的值:" + j);
}
}
}
而非短路逻辑运算符的答案是:
i的值:1
j的值:1
1.3总结
短路运算符只能用于逻辑表达式内,非短路运算符可用于位表达式和逻辑表达式内。也可以说:短路运算只能操作布尔型的,而非短路运算不仅可以操作布尔型,而且可以操作数值型。
但是在判断的时候推荐使用短路运算符进行逻辑判断,因为短路运算符在一定程度上可以提高程序运行的效率
Java短路运算符和非短路运算符的更多相关文章
- java入门---运算符&逻辑运算符&短路逻辑运算符&赋值运算符&条件运算符&instanceof 运算符
这篇文章接着上次的来,主要看逻辑运算符&短路逻辑运算符&赋值运算符&条件运算符&instanceof 运算符这五种运算符. 首先来看逻辑运算符.下表列出 ...
- day03-Python运维开发基础-(数据类型强转、运算符、逻辑短路、isinstance)
1. 强制转换成容器数据类型 # ### 强制类型转换 容器类型数据 (str list tuple set ) var1 = "你好世界" var2 = ["陈博文&q ...
- Java基础二(变量、运算符)
1.变量2.运算符 ###01变量概述 * A: 什么是变量? * a: 变量是一个内存中的小盒子(小容器),容器是什么?生活中也有很多容器,例如水杯是容器,用来装载水:你家里的大衣柜是容器,用来装载 ...
- Java 基本语法----进制、运算符
进 制 对于整数,有四种表示方式: 二进制:0,1 ,满 2 进 1.以 0b 或 0B 开头.十进制:0-9 ,满 10 进 1. 八进制:0-7 ,满 8 进1. 以数字 0 开头表示.十六进制: ...
- java学习笔记(4)运算符
java中的运算符分为以下几种: 算数运算符 +.-.*./.++.--.% 关系运算符 <.<=.>.>=.==.!= 布尔运算符 &&.||.&.| ...
- 027 01 Android 零基础入门 01 Java基础语法 03 Java运算符 07 逻辑“与”运算符
027 01 Android 零基础入门 01 Java基础语法 03 Java运算符 07 逻辑"与"运算符 本文知识点:Java中的逻辑"与"运算符 逻辑运 ...
- Java基础语法01——变量与运算符
本文是对Java基础语法的第一部分的学习,包括注释:标识符的命名规则与规范:变量的数据类型分类以及转换:以及六种运算符(算术.赋值.比较.逻辑.三元和位运算符).
- 028 01 Android 零基础入门 01 Java基础语法 03 Java运算符 08 逻辑“或”运算符
028 01 Android 零基础入门 01 Java基础语法 03 Java运算符 08 逻辑"或"运算符 本文知识点:Java中的逻辑"或"运算符 逻辑& ...
- 第2章 Java基本语法(上): 变量与运算符
2-1 关键字与保留字 关键字(keyword) 保留字(reserved word) 2-2 标识符(Identifier) 案例 class Test{ public static void ma ...
随机推荐
- laravel 中url使用
url() 通过url辅助函数(路由)生成:location.href = "{{url('user/index')}}"; 或者:location.href = "{{ ...
- vector的自定义实现
#pragma warning(disable:4996) #include<iostream> #include<string> #include<vector> ...
- [题解]Yet Another Subarray Problem-DP 、思维(codeforces 1197D)
题目链接:https://codeforces.com/problemset/problem/1197/D 题意: 给你一个序列,求一个子序列 a[l]~a[r] 使得该子序列的 sum(l,r)-k ...
- python函数装饰器详解
python装饰器(fuctional decorators)简单来说就是修改其他函数的函数. 这样的函数需要满足两个个条件: 1.不能修改原函数的源代码 2.不能改变原函数的调用方式 需要达到的效果 ...
- 配置访问公网主机上的jupyter notebook
文章结构: 一.安装python 二.安装并配置jupyter并配置jupyter 三.第一个python程序 一.安装python 1.1下载python安装包 # wget https://www ...
- [伯努利数] poj 1707 Sum of powers
题目链接: http://poj.org/problem?id=1707 Language: Default Sum of powers Time Limit: 1000MS Memory Lim ...
- 【转】在配置静态IP的时候遇到 :bringing up interface eth0 : error unknown connection
首先这是动态ip配置成功的结果 接下来切换到root用户来配置静态的 按照静态ip的配置方法配置好文件后(具体过程这里就不多加说明) 然后保存退出 当我们重启网卡的时候问题来了(因为本人有点强迫症,多 ...
- SpringBoot2.x整合Shiro(一)
一:什么是ACL和RBAC: ACL: Access Control List 访问控制列表 以前盛行的一种权限设计,它的核心在于用户直接和权限挂钩 优点:简单易用,开发便捷 缺点:用户和权限直接挂钩 ...
- WPFの触发器详解
例子1 简单触发器Triggers——满足简答的条件,触发 <Window x:Class="Styles.SimpleTriggers" xmlns="http: ...
- SET CONSTRAINTS - 设置当前事务的约束模式
SYNOPSIS SET CONSTRAINTS { ALL | name [, ...] } { DEFERRED | IMMEDIATE } DESCRIPTION 描述 SET CONSTRAI ...