Java 学习(03)--运算符/循环小结

简介: Java 学习(03)Java 运算符1、算术运算符:1.+,-,*,/,%,++,-2.+的用法 a: 加法 b: 正号 c: 字符串连接符 3./ 和%的区别 数据做除法操作的时候, / 取得是商, %取得是余数 4.++和-- 的用法 a: 他们的作用是自增或者自减 b: 使用 ** 单独使用 放在操作数据的前面和后面效果一样。

Java 学习(03)

Java 运算符

1、算术运算符:

1.+,-,*,/,%,++,-

2.+的用法 a: 加法 b: 正号 c: 字符串连接符 

3./ 和%的区别 数据做除法操作的时候, / 取得是商, %取得是余数 

4.++和-- 的用法 a: 他们的作用是自增或者自减 b: 使用 ** 单独使用 放在操作数据的前面和后面效果一样。 a++或者++a 效果一样。

5. 参与操作使用 放在操作数的前面:先自增或者自减,再参与操作

 

int a = 10; 
int b = ++a; 
放在操作数的后面:先参与操作,再自增或者自减
int a = 10; 
int b = a++; 

 

2、赋值运算符

 

1.=,+=,-=,*=,/=,%=

 

2.=叫做赋值运算符,也是最基本的赋值运算符 int x = 10; 把 10 赋值给 int 类型的变量 x

3.扩展的赋值运算符的特点 隐含了自动强制转换。 

面试题:请问下面的代码哪个有问题 ?

 

short s = 1; s = s + 1; // 错误
short s = 1; s += 1;  // 正确  答: s += 1; 不是等价于 s = s + 1; 而是等价于 s = (s 的数据类型 )(s + 1); 

 

3、比较运算符

1.==,!=,>,>=,<,<= 

2.无论运算符两端简单还是复杂最终结果是 boolean 类型。 

3.千万不要把 ==写成了 = 

4、逻辑运算符


1.&,|,^,!,&&,||

 

2.逻辑运算符用于连接 boolean 类型的式子 

 

3.结论  &:有 false 则 false 左边无论真假,右边都进行运算;

|: 有 true 则 true 

^: 相同则 false ,不同则 true 。 情侣关系。 

!: 非 true 则 false ,非 false 则 true 

&&:结果和 &是一样的,只不过有短路效果。左边是 false ,右边不执行。如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算 

||: 结果和 | 是一样的,只不过有短路效果。左边是 true ,右边不执行。

5、位运算符 ( 了解) 

1.^ 的特殊用法 一个数据针对另一个数据位异或两次,该数不变 

2.面试题 a: 请实现两个变量的交换 ** 采用第三方变量 ** 用位异或运算符

 

int a=10; 
int b=20; 
a=a^b^a; 

 

b=a^b^b;

b: 请用最有效率的方式计算出 2 乘以 8 的结果 2<<3 

6、三元运算符

1.格式 比较表达式 ?表达式 1: 表达式 2; 

2.执行流程: 首先计算比较表达式的值,看是 true 还是 false 。 如果是 true ,表达式 1 就是结果。 如果是 false ,表达式 2就是结果。

示例:
获取两个数中大数。
int x=3,y=4,z;
z = (x>y)?x:y;//z变量存储的就是两个数的大数。

 

程序流程控制

1、顺序结构:

 

如果代码里没有流程控制, 程序是至上而下一行一行执行的, 一条语句执行完之后继 续执行下一条语句,直到程序的最后。总的来说:写在前面的先执行,写在后面的后执行

 

2、选择结构

(1)、if 语句

格式: A:格式 1 if( 比较表达式 ) { 

              语句体 ;                

            } 

执行流程: 判断比较表达式的值, true ,执行语句体; false ,就不执行语句体

B:格式 2 if( 比较表达式 ) { 

语句体 1; 

}else { 语句体 2; 

执行流程: 如果是 true ,就执行语句体 1 如果是 false ,就执行语句体 2

C:格式 3 if( 比较表达式 1) { 

        语句体 1; 

        }else if( 比较表达式 2){ 

       语句体 2; 

       } 

 

       ... 

 

       else { 

       语句体 n+1; 

       } 

执行流程: 如果是 true ,就执行语句体 1 如果是 false ,就继续判断比较表达式 2 的值, 如果是 true ,就执行语句体 2 如果是 false ,就继续判断比较表达式 3 的值, ... 如果都不满足,就执行语句体 n+1 

 

注意

 

1.比较表达式无论简单还是复杂,结果是 boolean 类型 

2.if 语句控制的语句体如果是一条语句,是可以省略大括号的;如果是多条, 不能省略。 建议:永远不要省略。 

3.一般来说,有左大括号,就没有分号,有分号,就没有左大括号。

4.else 后面如果没有 if ,是不会出现比较表达式的。 

5.三种 if 语句其实都是一个语句,只要有一个执行,其他的就不再执行。

(2)switch 语句

(1) 格式: switch( 表达式 ) { 

         case 值 1:

         语句体 1; 

         break; 

         case 值 2: 

         语句体 2; 

 

         break; 
         ... 

 

         default: 

         语句体 n+1; 

 

         break; 

 

         } 

格式解释说明: 1.switch: 说明这是 switch 语句。 

2.表达式 : 可以是 byte,short,int,char JDK5以后可以是枚举 JDK7以后可以是字符串 

3.case: 后面的值就是要和表达式进行比较的值 

4.break: 表示程序到这里中断,跳出 switch 语句 default: 如果所有的情况都不匹配 , 就执行这里 , 相当于 if 语句中的 else 

(2) 面试题 switch 语句的表达式可以是 byte 吗?可以是 long 吗?可以是 String 吗? 

可以 ,不可以 ,JDK7 以后可以 

(3) 执行流程 : 1.首先计算表达式的值 2.和每一个 case 进行匹配,如果有就执行对应的语句体,看到 break 就结束。3.如果没有匹配,就执行 default 的语句体 n+1。 

(4) 注意事项 :1.case 后面只能是常量,不能是变量,而且,多个 case 后面的值不能出现相同的

2.default 可以省略吗 ? 可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。 特殊情况: case 就可以把值固定。

3.break 可以省略吗 ? 可以省略,但是结果可能不是我们想要的。 会出现一个现象: case 穿透。 最终我们建议不要省略 4.default 一定要在最后吗 ? 不是,可以在任意位置。但是建议在最后。

5.switch 语句的结束条件 a: 遇到 break 就结束了 b: 执行到末尾就结束了 提示 :if 语句和 switch 语句各自的场景

 

A:if :针对 boolean 类型的判断 针对一个范围的判断 针对几个常量的判断 B:switch 针对几个常量的判断

 

3、循环结构

(1)for 循环:

格式: for(初始化语句 ;判断条件语句 ;控制条件语句 ){ 循环体语句 ; } 

执行流程: 1.执行初始化语句2.执行判断条件语句 如果这里是 true ,就继续 如果这里是 false,循环就结束 3.执行循环体语句 4.执行控制条件语句 5.回到 b 

注意: 1.判断条件语句无论简单还是复杂,结果是 boolean 类型 2.循环体语句如果是一条,可以省略大括号,但是不建议 3.有分号就没有左大括号,有左大括号就没有分号

(2)while 循环

格式一: while(判断条件语句 ) { 

      循环体语句 ; 

      } 

格式二: 初始化语句 ; while(判断条件语句 ){ 

           循环体语句 ; 控制条件语句 ; 

           } 

注意: for 和 while 的区别 

1.使用上的区别 for 语句的那个控制条件变量 ,在循环结束后不能在使用了。 而 while 的可以继续使用。

2.理解上的区别 for 适合于一个范围的判断 while 适合次数不明确的 

(3)do⋯while 

 

格式一:
do { 

 

   循环体语句 ; 

  }while(判断条件语句 ); 

格式二: 初始化语句 ; do { 循环体语句 ; 控制条件语句 ; 

              }while(判断条件语句 ); 

三种循环的区别: 1.do...while 循环至少执行一次循环体 

2.for 和 while 必须先判断条件是否是 true,然后后才能决定是否执行循环体 简单的死循环:

 

a:while(true){...} 
b:for(;;){} 

 

4、控制跳转语句

(1)break: 中断的意思

1.用在循环和 switch 语句中,离开此应用场景无意义。

2.作用 a:跳出单层循环 b:跳出多层循环,需要标签语句的配合

(2)continue: 继续

1.用在循环中,离开此应用场景无意义。

2.作用 1.跳出单层循环的一次,可以继续下一次循环 

3.填空题 

for(int x=1; x<=10; x++) { 

 

if(x%3 == 0) { // 补齐代码
} System.out.println("Java 基础 "); 

 

如何让控制台输出 2 次: Java基础     break 

如何让控制台输出 7 次: Java基础    continue 

如何让控制台输出 13 次: Java基础   System.out.println("Java 基础"); 

(3)return: 返回

1.用于结束方法,整个方法结束。

2.一旦遇到 return, 程序就不会在继续往后执行。

目录
相关文章
|
4天前
|
存储 Java
java中的常见运算符的计算方式
本文介绍了计算机中二进制数的原码、反码和补码的概念及其转换方式。原码是符号位加真值的绝对值;反码中正数不变,负数其余位取反;补码在反码基础上加1。文章还详细解释了Java中的常见运算符(如按位与、或、异或、移位等)如何基于二进制进行计算,并探讨了使用补码的原因,包括统一符号位处理和扩展表示范围。通过具体代码示例帮助理解这些概念。
java中的常见运算符的计算方式
|
3月前
|
XML Java 编译器
Java学习十六—掌握注解:让编程更简单
Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据。它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译、部署或运行时进行处理。
105 43
Java学习十六—掌握注解:让编程更简单
|
2月前
|
Java 程序员 API
Java循环操作哪个快?
本文探讨了Java中stream API与传统for循环在性能上的对比,通过多个示例分析了不同场景下两者的优劣。作者指出,尽管stream API使代码更简洁,但不当使用会降低可读性和性能,特别是在处理大数据量时。实验结果显示,在多数情况下,普通for循环的性能优于stream API,尤其是在单次操作耗时较短但需多次执行的场景中。文章建议开发者在设计初期就考虑全局流程,避免重复使用stream流,以提升代码质量和性能。
Java循环操作哪个快?
|
2月前
|
Java 程序员 API
Java循环操作哪个快?
本文探讨了Java中Stream API与传统for循环的性能对比及适用场景。作者通过实际案例分析,指出在某些情况下,过度使用Stream API会导致代码可读性和维护性下降。测试结果显示,在数据量较小的情况下,普通for循环的性能优于Stream API,尤其是在涉及多次类似操作时。因此,建议在开发中根据具体需求选择合适的遍历方式,以提高代码的可读性和性能。
Java循环操作哪个快?
|
2月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
3月前
|
算法 Java 测试技术
🧑‍💻Java零基础:Java 的循环退出语句 break
【10月更文挑战第16天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
74 6
|
3月前
|
算法 Java 测试技术
🌟Java 零基础 | 详解 单目运算符
【10月更文挑战第14天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
65 7
|
2月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
3月前
|
Java 测试技术 开发者
🌟Java 零基础 | 深入理解三目运算符
【10月更文挑战第13天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
101 3
|
Java 程序员
黑马程序员Java零基础视频教程笔记-判断和循环 1
黑马程序员Java零基础视频教程笔记-判断和循环
56 0