当前位置: 首页 > news >正文

暑假复习篇之运算与逻辑

运算符

  1. 算术运算符:+ - *  / %(取余)【优先级与数学上的优先级一致】

  2. 赋值运算符:=、 +=、 -=、 *=、 /=、 %=、 ++ 、 --

  3. 比较运算符:== 、!=、>、 < 、>= 、<=

  4. 逻辑运算符:&&(与) 、||(或)、 !(非)

  5. 三元运算符:条件 ?值1值2   条件成立 值1 条件不成立 值2 

  6. 二进制位移运算符: >>(向右位移)  >>>(无符号向右位移) <<(向左位移)

  7. 位运算符:&(按位与)、 |(按位或)、 ^(按位异或)

  • 运算符:

        ①一个浮点与整数运算时的结果还是浮点数

        ②一个整数除另一个整数的结果还是整数    整除

        ③注意不同数据类型的常规类型【注意范围问题】

  • 赋值运算符:

        ①str【是一个特例,储存过程经过特殊处理。相关知识:字符串常量池 JVM虚拟机设计结构】这种变量使用 = 进行赋值的时候 传递的是地址编码 不是数据值

        ②int n = 100; int m = n;//n的值赋给m 此时n = 100,m = 100;但是m的值改变的时候n的值是不变的

        ③除了八大数据类型,其他类型都是第二种数据类型叫做地址数据类型。基本数据类型创建的变量【基本数据类型变量】(赋值时  将赋值 给变量名  ==比较的时候比较的是值),其他类型创建变量存储的都是地址【引用地址类型变量】(赋值时 将值的地址 给变量名 ==比较的时候比较的是值的地址  值相同地址不同的时候比较还是不等于)。【除了基本数据类型变量,其他的变量在比较时都需要实现比较的函数】

package lfx250628;import lfx241026.Test;public class exercise01 {public static void main(String[] args) {int[] arr1={1,2,3};int[] arr2 = arr1;System.out.println(arr1);System.out.println(arr2);int[] arr3 = {1,200,3};int[] arr4 = {1,200,3};Test test = new Test();test.compare(arr3, arr4);}public boolean compare(int[] arr1,int[] arr2){//三个层次的比较//地址相等 则一定相等if (arr1 == arr2){System.out.println("地址相等");return true;}//数据规模的比较if (arr1.length == arr2.length ){//逐个数据进行比较for (int i = 0;i< arr1.length;i++){if (arr1[i] != arr2[i]){System.out.println("发现了一个不相等的字符");return false;}}System.out.println("比较成功 相等");return true;}System.out.println("数据规模不相等");return false;}
}

系统中自带的一些基本都实现了比较函数 比如String 的equals方法

在程序中使用了一个字符串之后 后续还需要使用这个字符串时 会直接将地址赋给变量

字符串的 + 运算拼接 使用的是一个叫做 apend 的函数

        String str1 = "hello";str1 += "world";//这个操作就相当于下面的三行代码StringBuilder sb = new StringBuilder();sb.append("hello");sb.append("world");//将sb转化为StringString str3 = sb.toString();System.out.println(str3);

        ④arr数组  传递的是数组地址编码,不是数组的值

        ⑤= 赋值:将 = 右边的赋值给左边的变量名

逻辑符:

  • 条件判断:

        ① if else (流程控制结构 只可以通过结构中一个判断语句)

        ②三元运算符  二选一

        ③switch case  可以从选中的位置 完成后续所有的条件设定

  • 循环语句:

        ①for 格式:for(设定变量并且初始化赋值;设定条件;更新变量的值){ //循环体(满足条件时执行)  }【条件不成立则跳出循环】先判断后执行,循环次数固定

        ②while 格式: while(条件){   } 【条件不成立则跳出循环】先判断后执行,循环次数不固定

        ③do while  格式: do { //代码块(至少执行一次) } while(条件);【先执行代码块,执行后检查条件是否成立,条件成立则继续执行代码块,否则就跳出循环】先执行后判断,至少要执行一次

注意:while   和 do while   的循环变量需要再循环外声明   for  循环中的变量仅在循环内可见。

//条件控制//年龄筛查int age = 17;//判断年龄属于哪个阶段 儿童 少年 成年 中年 老年if(age<12){System.out.println("儿童");}else if(age<18){System.out.println("少年");}else if(age<40){System.out.println("成年");} else  {System.out.println("老年");}
  • 控制词:

        ①break 

作用:终止当前所在的循环(for、while、do-while)或switch语句,跳出该结构后执行后续代码 

使用范围:仅用于循环或者switch内部

        ②continue

作用:跳出当前循环体中剩余的代码,直接进入下一次循环的条件判断(for循环还会执行更新表达式)

使用范围:仅用于循环内部

for (int i = 1; i <= 5; i++) {if (i == 3) {continue; // 当 i=3 时跳过后续代码,直接执行 i++}System.out.println(i); // 输出:1 2 4 5
}

        ③return

作用:终止当前方法,退出所在的方法,无论该方法中是否还有未执行的代码

返回值:若方法有返回类型(非void),必须通过return返回对应类型的值【若方法有返回值则必须返回结果】

适用范围:方法内部

public class ControlFlowDemo {public static void main(String[] args) {for (int i = 1; i <= 5; i++) {if (i == 3) {// break;    // 输出:1 2// continue; // 输出:1 2 4 5return;     // 输出:1 2,main方法直接结束}System.out.println(i);}System.out.println("循环结束"); // break后执行,continue/return后不执行}
}

注意事项

①break和continue仅影响最内层的循环 。如果要控制外层循环,可以使用标签(label)

②return返回值要求:非void方法必须保证所有分支都有return语句

总结

①break:跳出单个循环或者switch,适用于提前结束特定结构。

②continue:跳出当前循环迭代,适用于过滤某些条件下的操作。

③return:终止整个方法,适用于方法逻辑完成或异常处理后的提前退出。

http://www.lqws.cn/news/557281.html

相关文章:

  • UI前端大数据可视化创新:利用AR/VR技术提升用户沉浸感
  • 什么是集中刷新,分散刷新,和异步刷新
  • 从 AJAX 到 axios:前端与服务器通信实战指南
  • 2023国赛linux的应急响应-wp
  • Re--攻防世界-基础android
  • C++ vector 完全指南:从入门到精通
  • 源码运行效果图(六)
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(三十八) -> 构建HAR
  • 基于springboot的海产品交易系统
  • 【数据标注师】3D标注
  • JWT认证性能优化实战指南
  • 《从 0 到 1 掌握正则表达式:解析串口数据的万能钥匙》
  • springboot+Vue逍遥大药房管理系统
  • 创建套接字时和填充地址时指定类型的异同
  • C++泛型编程2 - 类模板
  • 【数论】P11169 「CMOI R1」Bismuth / Linear Sieve|普及+
  • 嵌入式硬件与应用篇---寄存器GPIO控制
  • 进阶向:Flask框架详解,从零开始理解Web开发利器
  • Odoo邮箱别名使用指南:从配置到业务流程自动化
  • C# 委托(为委托添加方法和从委托移除方法)
  • docker部署后端服务的脚本
  • Golang JSON 标准库用法详解
  • Foundry测试实战:解锁区块链测试新姿势
  • Java 大视界 -- Java 大数据机器学习模型在金融市场高频交易策略优化与风险控制中的应用(327)
  • 单调栈一文深度解析
  • NLP——文本预处理(下)
  • 翻译服务器
  • Redis高级数据结构深度解析:BitMap、布隆过滤器、HyperLogLog与Geo应用实践
  • 趣味数据结构之——数组
  • Java 使用 Easy Excel 进行 Excel 数据导入导出