1.运算符

1.1 算术运算符

1.1.1 运算符和表达式

运算符:对常量或者变量进行操作的符号

表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。

不同运算符连接的表达式体现的是不同类型的表达式。

1 int a = 1;
2
3 int b = 2;
4
5 int c = a + b;

+:是运算符,并且是算术运算符。 a + b:是表达式,由于+是算术运算符,所以这个表达式叫算术表达式。

1.1.2 算术运算符

符号 作用 说明
+ 加 略
- 减 略
* 乘 略
/ 除 略
% 取余 获取两数做除法后的余数

注意: /和%的区别:两个数据做除法,/取结果的商,%取结果的余数。 整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。

1 int a = 10;
2
3 int b = 3;
4
5 System.out.println(a / b); // 输出结果3
6
7 System.out.println(a % b); // 输出结果1

1.1.3 字符的“+”操作

char类型参与算术运算,使用的是计算机底层对应的十进制数值。需要我们记住三个字符对应的数值:

'a' -- 97 a-z是连续的,所以'b'对应的数值是98,'c'是99,依次递加

'A' -- 65 A-Z是连续的,所以'B'对应的数值是66,'C'是67,依次递加

'0' -- 48 0-9是连续的,所以'1'对应的数值是49,'2'是50,依次递加

或者也可以只记住两个值,大写A+32就是小写a

算术表达式中包含不同的基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。

提升规则: byte类型,short类型和char类型将被提升到int类型,不管是否有其他类型参与运算。

整个表达式的类型自动提升到与表达式中最高等级的操作数相同的类型

等级顺序:byte,short,char --> int --> long --> float --> double

tips:

1、正是由于上述原因,所以在程序开发中我们很少使用byte或者short类型定义整数。也很少会使用char类型定 义字符,而使用字符串类型,更不会使用char类型做算术运算。

2、当“+”操作中出现字符串时,这个”+”是字符串连接符,而不是算术运算。在”+”操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行“+”操作时,从左到右逐个执行。

3、对于大量字符串连接,会产生严重的性能问题,为了解决这一问题,可以在有大量字符串连接的代码中使用StringBuffer或者StringBuilder。

1.2 赋值运算符

符号 作用 说明
= 赋值 a=1,将1赋值给变量a
+= 加后赋值 a+=b,将a+b的值给a,等同于a=a+b
-= 减后赋值 a-=b,将a-b的值给a,等同于a=a-b
*= 乘后赋值 a*=b,将a*b的值给a,等同于a=a*b
/= 除后赋值 a/=b,将a/b的值给a,等同于a=a/b
%= 取余后赋值 a%=b,将a%b的值给a,等同于a=a%b

1.3 自增自减

符号 作用 说明
++ 自增 a++,即a=a+1
-- 自减 a--,即a=a-1

注意事项:

++和-- 既可以放在变量的后边,也可以放在变量的前边。

单独使用的时候, ++和-- 无论是放在变量的前边还是后边,结果是一样的。

参与操作的时候,如果放在变量的前边,先拿变量做++或者--,后拿变量参与操作;如果放在变量的后边,先拿变量参与操作,后拿变量做++或者--。

1.4 关系运算符

符号 作用 说明
== 判断是否相等 成立返回true,不成立返回false
> 判断a是否大于b 同上
>= 判断a是否大于等于b 同上
< 判断a是否小于b 同上
<= 判断a是否小于等于b 同上
!= 判断是否不相等 同上

注意事项:

1、关系运算符的结果都是boolean类型,要么是true,要么是false。

2、不要混淆“==”与“=”,一个是判断,一个是赋值。

1.5 逻辑运算符

符号 作用 说明
& 与 a & b,a与b是否都是true,成立返回true,不成立返回false
| 或 a | b,a与b是否有一个是true,成立返回true,不成立返回false
^ 异或 a ^ b,a与b是否结果不同,成立返回true,不成立返回false
! 非 !a ,结果与a是否完全相反,成立返回true,不成立返回false

短路逻辑运算符

符号 作用 说明
&& 短路与 a && b,a与b是否都是true,成立返回true,不成立返回false,具有短路效果
|| 短路或 a || b,a与b是否有一个是true,成立返回true,不成立返回false,具有短路效果

短路效果:在逻辑与运算中,只要有一个表达式的值为false,那么结果就可以判定为false了,没有必要将所有表达式的值都 计算出来,短路与操作就有这样的效果,可以提高效率。同理在逻辑或运算中,一旦发现值为true,右边的表达式 将不再参与运算。

1.6 三元运算符

关系表达式 ? 表达式1 : 表达式2;

解释:问号前面的位置是判断的条件,判断结果为boolean型,为true时调用表达式1,为false时调用表达式2。其 逻辑为:如果条件表达式成立或者满足则执行表达式1,否则执行第二个。

举例:判断pwd和passwd是否相等,相等返回true,不相等返回false。

 1 public class Demo {
2   public static void main(String[] args) {
3     //1:定义两个变量,此处仅作展示,请不要使用弱口令密码。
4     int pwd = 123456;
5     int passwd = 123123;
6     //2:用三元运算符实现数值的判断,相同,返回true,否则,返回false。
7     boolean b = pwd == passwd ? true : false;
8     //3:输出结果
9     System.out.println("b:" + b);
10   }
11 }

2. 数据输入

我们可以通过 Scanner 类来获取用户的输入。

使用步骤如下:

1、导包。Scanner 类在java.util包下,所以需要将该类导入。导包的语句需要定义在类的上面。

1 import java.util.Scanner

2、创建Scanner对象。

1 Scanner sc = new Scanner(System.in);

3、接收数据

1 String str = sc.nextLine();

3. 流程控制语句

在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以,我们必须清楚每条语句的执 行流程。而且,很多时候要通过控制语句的执行顺序来实现我们想要的功能。

3.1 流程控制语句分类

顺序结构、分支结构(if, switch)、循环结构(for, while, do…while)

3.2 顺序结构

顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多 数的代码都是这样执行的。

3.3 分支结构之if语句

1.if语句

1 if(a == b){
2   return "ok";
3 }

判断a与b是否相等,相等执行花括号内语句,不相等什么都不做。

2.if……else

1 if(a == b){
2   return "ok";
3 }else{
4   return "no!God!no!"
5 }

判断a与b是否相等,相等执行if下花括号内语句,不相等执行else下花括号内语句。

3.if……else if……else

1 if(a == b){
2   return "ok";
3 }else if(a < b){
4   return "no bad"
5 }else{
6   return "no!God!no!"
7 }

判断a与b是否相等,相等执行if下花括号内语句,不相等则判断else if中的判断,如果为true执行else if下花括号的语句。注意,else if语句可以有多个,如果都无法通过判断,则执行else下花括号内语句。

JavaSE03-运算符&分支语句的更多相关文章

  1. 运算符 与 分支语句:if ,else if,else;switch case

    分支语句: if        else if       else      :    switch          case --如何使用 if  else if  else: Console. ...

  2. HTML基础--JS简介、基本语法、类型转换、变量、运算符、分支语句、循环语句、数组、函数、函数调用.avi

    JS简介 1.JavaScript是个什么东西? 它是个脚本语言,需要有宿主文件,它的宿主文件是HTML文件. 2.它与Java什么关系? 没有什么直接的联系,Java是Sun公司(已被Oracle收 ...

  3. js简介、基本语法、类型转换、变量、运算符、分支语句、循环语句、函数、函数调用

    javascript是个脚本语言,需要有宿主文件,他的宿主文件是html文件. 三个常用对话框 alert("")警告对话框,弹出一个警告对话框 <script> al ...

  4. js部分---运算符,if分支语句,for循环;switch case 的用法;

    ------------------------------------------运算符---------------------------------------------------- *数 ...

  5. C#流程控制语句--分支语句(if,switch,三位运算符)

    分支语句:判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的). 分支语句  if if(判断条件表达式) {//表达式结果为tu ...

  6. Java之基础学习(数据类型、运算符、分支语句和循环语句)

    在工作用得比较多的是shell和python编程,对于java以前也学习过,使用很少,这次借朋友推荐的java视频教程来温习下. 也是因为现在很多开源测试工具使用java编写的,学习一下更有助于测试工 ...

  7. c# 第12节 分支语句if、switch、三位运算符

    本节内容: 1:流程控制语句分类 2:分支语句之if的使用 3:分支语句之switch的使用 4:分支语句之三位运算符 5:分支语句比较 1:流程控5:制语句分类 2:分支语句之if 3:分支语句之s ...

  8. JavaScript语法、对话框。分支语句

    一.用法 其所在的位置有三块,1.head里面  2.body里面  3.</html>后   一般都写在</html>后 其用法为<script></scr ...

  9. C语言入门(10)——if分支语句

    在我们写的函数中可以有多条语句,但这些语句总是从前到后顺序执行的.除了从前到后顺序执行之外,有时候我们需要检查一个条件,然后根据检查的结果执行不同的后续代码,在C语言中可以用分支语句实现,比如: if ...

  10. JavaScript基础(语法类型转换、运算符、语句)

    1.类型转换: 分为自动转换和强制转换,一般用强制转换. 其他类型转换为整数:parseint(): 其他类型转换为小数:parsefloat(): 判断是否是一个合法的数字类型:isNaN(): 是 ...

随机推荐

  1. [从源码学设计]蚂蚁金服SOFARegistry之程序基本架构

    [从源码学设计]蚂蚁金服SOFARegistry之程序基本架构 0x00 摘要 之前我们通过三篇文章初步分析了 MetaServer 的基本架构,MetaServer 这三篇文章为我们接下来的工作做了 ...

  2. html页面转PDF、图片操作记录

    前言 日常开发中,我们有可能会碰到从系统中导出数据并打印的需要,打印的格式是常规的表格形式,例如: 本文记录使用js库html2canvas + jspdf实现html转PDF.图片,并下载 画出页面 ...

  3. python 中 try...finally... 的优雅实现

    1. 关于 try.. finally.. 假如上帝用 python 为每一个来到世界的生物编写程序,那么除去中间过程的种种复杂实现,最不可避免的就是要保证每个实例最后都要挂掉.代码可简写如下: tr ...

  4. 找回消失的IDM嗅探下载浮动条的方法

    我们之前讲了IDM资源嗅探的下载浮动条的设置方法,然而在有些时候,这个下载浮动条无法正常显示出来,影响了下载体验,这个问题该如何解决呢? 1.安装IDM扩展程序 一般来说,在IDM安装完成后,会在浏览 ...

  5. css3系列之属性选择器

    Attribute Selectors(属性选择器) E[attr ~="val"] E[attr |="val"] E[attr ^="val&qu ...

  6. jQuery 第五章 实例方法 详解内置队列queue() dequeue() 方法

    .queue() .dequeue() .clearQueue() ------------------------------------------------------------------ ...

  7. web自动化测试,弹出窗的操作

    弹出窗有两种: 1.alert弹窗 2.页面弹出窗 什么是alert弹窗呢,点击某一个事件后,会弹出一个弹窗,如下图所示,相信大家在测试中有遇到过,怎么操作它呢 1.1弹窗出现后,使用switch_t ...

  8. uniapp和vue 父向子传值、传方法及子向父传值。(一看就会超级简约)

    1.父向子传值:父组件在引用子组件时通过自定义属性绑定自身需要传递的值(数据),子组件用props:[  '自定义'  ]接收即可使用(props里数据是只读模式).(简约版:子绑定父的属性并用pro ...

  9. 写代码有这16个好习惯,可以减少80%非业务的bug

    前言 每一个好习惯都是一笔财富,本文整理了写代码的16个好习惯,每个都很经典,养成这些习惯,可以规避多数非业务的bug!希望对大家有帮助哈,谢谢阅读,加油哦~ github地址,感谢每颗star ❝ ...

  10. 分析 5种分布式事务方案,还是选了阿里的 Seata(原理 + 实战)

    好长时间没发文了,最近着实是有点忙,当爹的第 43 天,身心疲惫.这又赶上年底,公司冲 KPI 强制技术部加班到十点,晚上孩子隔两三个小时一醒,基本没睡囫囵觉的机会,天天处于迷糊的状态,孩子还时不时起 ...