03、流程控制语句
01、位运算符
一、位运算符:是针对二进制数据(补码)的运算。(0看成false,1看成true)
&:按位与——求出两个数字对应的二进制,有0则0
| :按位或——求出两个数字对应的二进制,有1则1
^ :按位异或 ——求出两个数字对应的二进制,相同则0,不同则1。
~:按位取反——按位取反的意思就是,针对当前的这个二进制数据,所有的0变1,1变0,其实就相当与把当前的变量的值加1,然后取反。
02、运算符2
1. <<:左移——左边的高位舍弃,右边空出的部分用0补齐
2. >>:右移——如果最高位是0,左边被移空的位就填入0;如果最高位是1,左边被移空的位就填入1
3. >>>:无符号右移——无论最高为是1还是0,左边被移空的高位都填入0
总结:向左(增大)移动或者向右(缩小)移动,就是把数据增大或者缩小2的指定次幂。
03、两个面试题
A:请用最高的效率写出2乘以8这个式子
2*8(错误,不够高效) ---> 2<<3
B:请把两个数据交换 举例:int a=10;int b=20;交换两个变量的值。
方案1:采用临时变量
方案2:使用位^运算符
特点:一个数据对同一个数据位^运算两次,数据不变
a=a^ b;
b=a^ b;
a=a^ b;
开发使用第三方变量的形式,面试使用位^运算符。
04、条件运算符
也就是三元运算符,三元表达式。
格式:(条件表达式)?表达式一:表达式二
注意:条件表达式说明这里将来只能是结果为true或者false的表达式
执行顺序:如果条件表达式为true,就把表达式1作为结果;
如果条件表达式为false,就把表达式2作为结果。
扩展:三元表达式的嵌套。
例子:用三元表达式求3个数的最大值。
(a>b) ?(a>c?a:c):(b>c?b:c);
05、if语句的第一种格式
流程控制语句:
A:顺序结构:代码按照顺序从上往下执行
B:选择结构:代码根据以下选择或者判断做出不同的执行
C:循环结构:把某些事情做很多次
if语句的第一种格式:
if(条件表达式){
语句体;
}
执行顺序:根据条件表达式的返回值是true还是false决定程序的流程
如果是true,就执行语句体,如果是false,就什么都不做
注意:
A:无论条件表达式是简单还是复杂,结果都必须是boolean类型;
B:if语句后面可以不写0,如果这样的话,他就只能控制后面的一条语句如果想控制多条,就必须加0,推荐:无论是控制一条还是多条,请都加上;
C:在if语句的0前面不要写分号,否则,会对程序的结果有影响,-般来说,出现0的时候,就不会有分号,有分号的时候,就不会有()号。
作用域:定义的变量的作用域,在他所属的那对之内有效。
06、if语句的第二种和第三种格式
一、if语句的第二种格式:
if(条件表达式){
语句体1;
}else{ // 否则的意思
语句体2;
}
二、if语句的第三种格式:
if(条件表达式){
语句体1;
}else if(条件表达式){
语句体2;
}
………………(此处可以写多个else if0))
else{
语句体3;
}
注意:
A:else后面是不能直接跟条件表达式;
B:最后一个else可以不写,但是,一般建议加上。除非,你明确不需要;
C:if语句的第三种格式,一旦某个地方满足if语句就不往下执行了。
07、if语句的案例测试
考试成绩分等级90-100---A等;
80-89 ---B等;
70-79 --- C等;
60-69--- D等;
60以下 ---E等;
根据给定成绩,输出对应的等级(代码略)
注意:
A:做程序,不仅仅要考虑正常情况,还得考虑非正常情况;
B:对程序进行测试,要考虑的数据
a:正确数据
b:错误数据
c:边界数据
08、if语句的案例测试通过Scanner改进
我们如果想数据的效果好一些,最好从键盘录入数据而键盘录入的实现方案,常用有三种方式:
A:main后边的Stringlargs接受参数;
B:BufferedReader I0流里边;
C:ScannerJDK5以后键盘录入数据的新方式。
使用Scanner的步骤:
A:导包
import java.util.Scanner;
B:创建对象
Scanner sc = new Scanner(System.in);
注意:System.in:是标准输入流,对应着键盘录入。
这个暂时先了解,后边到IO流会重点讲。
用Scanner来做上边那道评判成绩评定的题。
09、if语句的嵌套和与条件运算符的替换
A:if语句的嵌套:
if语句里面的语句体本身又是一个if语句。
事例:求三个数的最大值。
B:if语句的第二种格式和条件运算符的关系
没有关系,一个是语句,一个是运算符。
但是,if语句在某些情况下,可以用条件运算符替换,更简洁。
C:例如:System.out.printin("输出一句话”);
这种情况就不可以使用条件运算符替换,因为条件运算符是运算符,
是运算符就应该有结果。
10、switch语句的格式使用
格式:
switch(表达式){
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
……………………
default:
执行语句;
break;
}
解释:
1.switch:知道这里使用的是switch
2.表达式:byte,short,int,charJDK5以后,可以是枚举。JDK7以后,可以是String类型。
3.执行流程:
从上往下,用表达式的值去和case后面的值进行匹配如果有匹配的,就去执行该case所包含的语句,如果没有匹配的,就会去执行default中的内容。
11、switch语句的注意事项
A:default可以省略吗?
可以。但是,一般不省略,它相当于if的else语句,可以控制所有的非正常情况。假如你非常明确可以省略,那就省略。
B:break可以省略吗?
放在最后面的default的break是可以省略的,
放在case语句中的break是可以省略的,但是可能结果有问题。所以,一般不省略。
C:default可以不放在最后边吗?
可以,但是一般都放在最后面,
D:switch语句什么时候结束?
遇到break或者执行到switch的结尾
相关文章:
03、流程控制语句
01、位运算符 一、位运算符:是针对二进制数据(补码)的运算。(0看成false,1看成true) &:按位与——求出两个数字对应的二进制,有0则0 | :按位或——求出两个数字对应的二进制,有1则1 ^ :按位异或 ——求出两个数字对应的二进制,…...
[Android] [解决]Bottom Navigation Views Activity工程带来的fragment底部遮盖的问题
创建了Bottom Navigation Views Activity之后,在fragment_home.xml,加了一个RecyclerView, 后来添加了item之后发现底部会被盖住一部分。 解决:在layout里面加两句: android:paddingBottom"?attr/actionBarSize&…...
Armv8/Armv9架构中的原子性
B2.2 Arm 架构中的原子性 原子性是内存访问的一个特性,描述为原子访问。Arm 架构描述涉及两种类型的原子性:单次复制原子性和多次复制原子性。在 Arm 架构中,内存访问的原子性要求取决于内存类型,以及访问是显式的还是隐式的。有关更多信息,请参见: 单次复制原子性的要求…...
读零信任网络:在不可信网络中构建安全系统15协议和过滤
1. 协议 1.1. IKE/IPSec 1.1.1. 因特网密钥交换协议(Internet Key Exchange,IKE)用于执行IPSec认证和密钥交换 1.1.1.1. 通常以后台守护进程的方式实现,使用预共享密钥或X.509证书来认证对端并创建一个安全会话 1.1.2. IKEv1与IKEv2 1.1.2.1…...
C语言学习笔记 Day11(指针--中2)
Day11 内容梳理: 目录 Chapter 7 指针 7.6 指针 & 函数 (1)形参改变实参的值 (2)字符数组作为函数参数 1)合并字符串 2)删掉字符串中空格 (3)指针作为函数返…...
Golang 并发编程
Golang 并发编程 Goroutine 什么是协程 创建 Goroutine 主 goroutine (main函数)退出后,其它的工作 goroutine 也会自动退出 package mainimport ("fmt""time" )func myFunc() {i : 0for {ifmt.Println("func: …...
【数据结构详解】——选择排序(动图详解)
目录 🕒 1. 直接选择排序🕒 2. 堆排序 🕒 1. 直接选择排序 💡 算法思想:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始(末尾)位置…...
杂项命令(笔记)
ifconfig :http://t.csdnimg.cn/gT2AR echo :http://t.csdnimg.cn/6DSoO ps和top的区别 http://t.csdnimg.cn/f1XWt...
代码随想录算法训练营Day38||完全背包问题、leetcode 518. 零钱兑换 II 、 377. 组合总和 Ⅳ 、70. 爬楼梯 (进阶)
一、完全背包问题 相较于01背包,完全背包的显著特征是每个物品可以用无数次,遍历顺序也不需要为了保证每个物品只去一次而倒序遍历。 #include<iostream> #include<vector> using namespace std; int main(){int N,V;cin>>N>>V…...
超越链端:Web3的无边界技术革命
Web3,作为互联网技术的第三代变革,正以其去中心化、开放透明的特性,重新定义着我们的数字生活。在这一背景下,“链端”概念逐渐成为热点,意味着我们不仅仅局限于区块链技术本身,而是探索其在更广泛领域的应…...
127. Go反射基本原理
文章目录 反射基础 - go 的 interface 是怎么存储的?iface 和 eface 的结构体定义(runtime/iface.go):_type 是什么?itab 是什么? 反射对象 - reflect.Type 和 reflect.Value反射三大定律Elem 方法reflect.…...
提高PDF电子书的分辨率
解决方法出处 1. 安装ImageMagick brew install imagemagick brew install ghostscript2. 按流程进行 convert -density 600 your_pdf_filename.pdf output-%02d.jpg convert output*.jpg -normalize -threshold 80% final-%02d.jpg convert final*.jpg my_new_highcontras…...
Spring Cloud全解析:注册中心之zookeeper注册中心
zookeeper注册中心 使用zookeeper作为注册中心就不需要像eureka一样,在写一个eureka-server的服务了,因为zookeeper本身就是一个服务端,只需要编写需要进行服务注册的客户端即可 依赖 <!-- zookeeper 注册中心 --> <dependency&g…...
解决戴尔台式电脑休眠后无法唤醒问题
近期发现有少量戴尔的台式机会有休眠后无法唤醒的问题,具体现象就是电脑在休眠后,电源指示灯以呼吸的频率闪烁,无论怎么点鼠标和键盘都没有反应,并且按开机按钮也没法唤醒,只能是长按开机键强制关机再重启才行…...
MySQL运维-分库分表
介绍 问题分析 拆分策略 垂直拆分 水平拆分 实现技术 Mycat概述 介绍 概念介绍 Mycat配置 schema.xml schema标签 schema标签(table) datanode标签 datahost标签 rule.xml sever.xml system标签 user标签 Mycat分片 分片规则-范围 分片规则-取模 分…...
AGX orin硬件设计
AGX orin简介 从硬件组成来说,AGX orin可以分为核心板和扩展板。 核心板 核心板就是英伟达原装板卡,如下图所示: 核心板分为32G内存版本和64内存版本,两个版本除去内存不同之外,CPU也略有差异。核心板通过…...
AI大模型开发——2.深度学习基础(1)
学习大模型开发之前,我们需要有足够的储备知识,类似于基础的python语法相信大家也都是十分熟悉了。所以笔者也是考虑了几天决定先给大家补充一些深度学习知识。 首先问大家一个问题,学习大模型之前为什么要先学习深度学习知识呢? …...
go语言day22 gin-vue-admin全栈项目的依赖安装
flipped-aurora/gin-vue-admin: 🚀ViteVue3Gin的开发基础平台,支持TS和JS混用。它集成了JWT鉴权、权限管理、动态路由、显隐可控组件、分页封装、多点登录拦截、资源权限、上传下载、代码生成器【可AI辅助】、表单生成器和可配置的导入导出等开发必备功能…...
PHP之docker学习笔记
Docker学习笔记 前言: 之前学过一遍忘了 那就再来一遍没啥好说的就是可以直接构建一个环境 然后方便部署官网 http://www.docker.com仓库 https://hub.docker.comDocker的基本组成 镜像 容器 仓库 安装与卸载 卸载 sudo yum remove docker \docker-client \dock…...
基于树莓派4B与STM32的UART串口通信实验(代码开源)
在现代嵌入式系统中,树莓派和STM32的结合使用已成为一种流行趋势,它们各自承担不同的角色,实现优势互补。树莓派以其强大的计算能力处理复杂算法,而STM32则以其高效的控制能力执行实际的硬件操作。本文将详细介绍如何实现基于树莓…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
