| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Java:运算符和程序逻辑控制 -> 正文阅读 |
|
[Java知识库]Java:运算符和程序逻辑控制 |
? 目录 运算符运算符,顾名思义就是用来执行数学运算的。在Java中运算符可以分为:算术运算符、关系运算符、逻辑运算符、位运算符、移位运算符、条件运算符等。 算术运算符基本四则运算符(+ - * / %)这里与C语言基本一致,但是还要记住的是:1. 都是二元运算符,使用时必须要有左右两个操作数;2. int / int结果还是int类型,而且会向下取整。 增量运算符(+= -= *= /= %=)这种类型运算符操作完成后,会将操纵的结果赋值给左操作数(与C语言类似)。 注意:只有变量才能使用该运算符,常量不能使用。 自增/自减运算符(++ --)这里也是和C语言相同的,前置++是先+1,然后再再使用变量+1之后的值;后置++是先使用变量原来的值,表达式结束时再给变量+1,前置--/后置--也是类似的。 注意:只有变量才能使用自增/自减运算符,常量是不能够使用的,因为常量是不允许被修改的。 关系运算符关系运算符主要有以下几个:==? ?!=? ?<? ?>? ?<=? ?>=,他们在进行计算后会得出的结果是true/false(也就是布尔类型) 其中有一点值得注意的是:当需要进行多次判断的时候
是不能够像上面的这段代码那样连着写的,这样会报错,而应该像下面的代码一样:
但是上面这段在Java中错误的代码,在C语言中却不会报错,在C语言中是会先判断3是否小于a,发现确实是小于,泽会将其变为1,再判断1是否小于5,发现是就直接执行了这个if语句。但是计算机中这样的执行方式肯定是和我们元本的意愿是不符符,所以从这个方面又可以看出Java相对C语言安全性是更高的(因为Java在这个时候会就直接报错)。 逻辑运算符逻辑运算符在所有运算符里面算得上是比较重点的,其中,逻辑运算符主要有三个:&&? ||? !,其运算结果都是布尔类型(true/false)。 逻辑与(&&)语法是:布尔表达式&&布尔表达式(注意:左右表达式应该都是布尔类型) 与C语言相同: 1. 只有两个表达式都为真,结果才为真;两表达式只要有一个是假,那结果就是假。 2. 遵循短路求值:如果左侧表达式为假,那么结果就一定是假,不会计算右侧的表达式。 与C语言不同:单纯使用&时,如果表达式结果为布尔类型,也可以表示逻辑与,但是不会遵循短路求值。?
逻辑或(||)语法是:布尔表达式||布尔表达式(注意:左右表达式应该都是布尔类型) 与C语言相同: 1. 两表达式只要有一个是真,那结果就是真;只有两个表达式都为假,结果才为假。 2.? 遵循短路求值:如果左侧表达式为真,那么结果就一定是真,不会计算右侧的表达式。 与C语言不同:单纯使用|时,如果表达式结果为布尔类型,也可以表示逻辑或,但是不会遵循短路求值。??
逻辑非(!)语法是:!表达式 与C语言相同:真变假,假变真。? 位运算符
位运算符主要有以下四个:&? |? ~? ^(其中除了~是一元运算符以外,其余的都是二元运算符)。这部分知识基本与C语言一模一样(当做巩固,具体见之前文章或者题目)。 按位与(&)两个二进制位都是1,则结果是1,否则结果为0(注意:只能是整数(int/short/long/byte)的时候)。 按位或(|)两个二进制为都是0,则结果是0,否则结果为1(注意:只能是整数(int/short/long/byte)的时候)。 按位取反(~)把所有二进制位0转为1,1转为0。 按位异或(^)两个数字的二进制相同,则结果为0;相异的结果则为1。 移位运算移位运算符主要有三个:<<? >>? >>>,且都是二元运算符,都是按照二进制比特位来运算的。 左移(<<)与C语言一样: 1. 最左侧位舍去,最右侧补0(注意:左移时,丢弃的是符号位,因此正数左移可能会变成负数)。 2. 左移一位相当于原数字*2;左移N位相当于原数字*2的N次方。 右移(>>)与C语言一样: 1. 最右侧位舍弃,最左侧不符号位(正数补0,负数补1)。 2. 右移一位相当于原数字/2;左移N位相当于原数字/2的N次方。 无符号右移(>>>)无符号右移在C语言中是没有的,其作用是:最右侧位舍弃,最左侧补0。 总结1. 进行移位运算相对于直接做乘除效率会高一些,所以当某个代码正好需要乘除2的N次方的时候就可以使用移位运算。 2. 对负数进行移位运算,会得出向上取负数的整的值,导致其运算的结果与直接做除法的结果不相同。
条件运算符语法是:布尔表达式1?表达式2:表达式3(当布尔表达式1的值为ture,整个表达式的值为表达式2的值;当布尔表达式1的值为flase,整个表达式的值为表达式3的值)。
注意的点: 1. 表达式2和表达式3的结果是要同类型的,除非是能够发生类型隐式类型转换的。 2. 表达式是不能单独存在的,其产生的结果必须要被使用。? 程序逻辑控制Java中程序的逻辑控制语句分支语句
1. 在if语句中的判断表达式必须是布尔表达式 2. 悬垂else问题也是和C语言一样,匹配的是其最近的if 3. 在switch语句中,多个case后的常量值是不可以重复的 4. switch语句的括号内只能是下面的几种类型: ? ? (1)基本类型:byte、char、short、int(注意不能是long类型) ? ? (2)引用类型:String常量串、枚举类型 循环结构
1. 使用while循环的时候的循环条件必须是布尔类型 2. 使用for循环的时候循环条件(也就是第二个表达式)也必须是布尔表达式 3. do while循环的循环条件也必须是布尔表达式且是在第一次执行语句块之后才进行判断 4. break的功能是让循环提前结束 5. continue的功能是跳过本次循环,立刻进入下一次循环执行 Java中的输入输出方式输出到控制台有以下这三种方法:
从键盘输入1. 使用Scanner读取字符串/整数/浮点数 案例1:
使用Scanner循环读取N个数字 案例2:
注意: 1. 当循环输入多个数据的时候,可以使用Ctrl+D来结束运行 2. 当使用完Scanner进行输入的时候,需要将其close掉 巩固练习下面引出一个猜数字游戏练习来巩固程序逻辑控制。
实现代码:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 9:08:46- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |