day04_流程语句_if_while_for

今日内容

1.if
2.switch
3.while,do-while,for

零、复习

1算术运算符中除法特性

  • 整数相除不保留小数 10/3=3

2++什么作用,i++和++i什么区别

  • 让数据自增1
  • i++,是++在后先使用后自增
  • ++i,是++在前先自增后使用

3&& 和 & 有相同点和不同点

  • 相同点: 两边判断式子,一错就错全对才对
  • 不同点: &&有短路效果,当第一个式子结果错的时候后面式子不执行

4三目运算的语法格式

  • 数据类型 变量 = 布尔表达式 ? 对时执行 : 错时执行;
  • String s = a > b ? “a大” : “b大”;

5解释如下代码的错误
short s = 1;
s = s + 1;

  • s是short类型变量,数字1int类型
  • s+1执行完,结果的数据类型是int
  • 将int结果赋值给s变量,但是s变量是short类型,即int类型转成short
  • 但是int到short默认不行,所以报错
  • 解决方案: s = (short)(s + 1);
  • 或者 s += 1;

一、流程控制语句

流程: java的执行流程(从main方法中从上至下,逐行执行)

控制: 通过一些技术改变这些流程(选择的执行,跳过不执行,循环重复执行)

能实现流程控制的语句有

  • 分支语句: if,if-else,elseif
  • 选择语句: switch-case
  • 循环语句: while,do-while,for

二、分支语句(重要)

2.1 if(单分支)

if (布尔表达式) {

​ 执行语句;

}


  • 遇到if,就开始判断后面式子
  • 如果式子是true 就执行{}内语句
  • 如果式子false 就跳过{}内不执行,而后续的
       // 判断能不能进入网吧??int age = 8;if (age >= 18) {System.out.println("可以上网,欢迎光临~" );}

2.2 if-else(双分支)

if(布尔表达式) {

执行语句;

} else {

执行语句;

}


  • 遇到if,执行判断
  • 结果为true.执行if后的语句,不再执行else
  • 结果为false.跳过if执行else后的语句
        int age2 = 8;if (age2 >= 18) {System.out.println("可以上网!" );} else {System.out.println("不可以上网!" );}

2.3 练习题

package com.qf.contrl;import java.util.Scanner;/*** --- 天道酬勤 ---** @author QiuShiju* @date 2024/2/22* @desc if和if-else的练习*/
public class Demo2 {public static void main(String[] args) {// 定义两个变量,输出其中最大值(不考虑相等)int a = 1;int b = 2;if (a > b) {System.out.println("max is a = " + a);} else {System.out.println("max is b = " + b);}// 定义三个变量,输出其中最大值(不考虑相等)int x = 11;int y = 22;int z = 3;if (x > y) {if (x > z) {System.out.println("x大" );} else {System.out.println("z大" );}} else {if (y > z) {System.out.println("y大" );} else {System.out.println("z大" );}}// 声明一个int型的数据,判断这个数是否能被2整除,如果能被2整除,那么输出“这个数是偶数”,否则输出“这个数是奇数”。int num = 2;if (num % 2 == 0) { // 整除就是余数为0System.out.println("num = " + num+",是偶数" );} else {System.out.println("num = " + num+",是奇数" );}// 编写一个程序,输入用户名和密码,// 要求用户名和密码同时正确才输出"登录成功",// 否则输出"用户名或密码错误"// 假设正确的用户名是数字1,密码是数字2System.out.println("--- xxx系统 ----" );Scanner scanner = new Scanner(System.in);System.out.println("请输入用户名:" );int username = scanner.nextInt( );// 用户名System.out.println("请输入密码:" );int password = scanner.nextInt( );// 密码if (username == 1 && password == 2) {System.out.println("登录成功,欢迎进入xxx系统" );} else {System.out.println("用户名或密码错误!" );}}
}

2.4 elseif(多分支)

语法

if(布尔表达式1) {执行语句1;
} else if(布尔表达式2){执行语句2;
} else if(布尔表达式3){执行语句3;
} ... {} else {执行语句n;
}

执行顺序:

  • 遇到if执行判断,如果为true,执行if后语句1,后面的都不再执行
  • 如果if是false,跳过语句1,判断第二个if,如果此时为true,执行语句2,后面不再执行
  • 如果判断2为false,跳过语句2,执行第三个判断…
  • 依次类推
  • 如果以上判断都失败,就执行最后的else

给定一个成绩,根据成绩的范围打印相应的等级。90及以上为"A级",80-89为"B级",70-79为"C级",60-69为"D级",60以下为"E级"。

 		int score = 92;if (score >= 90) {System.out.println("A" );} else if (score >= 80) {System.out.println("B" );} else if (score >= 70) {System.out.println("C" );} else if (score >= 60) {System.out.println("D" );} else {System.out.println("E" );}

给定两个整数,比较它们的大小并打印结果。如果第一个数较大,输出"第一个数较大",如果第二个数较大,输出"第二个数较大",如果两个数相等,输出"两个数相等"。

		int x = 11;int y = 22;if (x > y) {System.out.println("x > y" );} else if (x < y) {System.out.println("x < y" );} else {System.out.println("x == y" );}

编写一个程序,根据用户输入的月份,判断该月份的天数并输出。假设输入的月份范围为1到12。

Scanner scanner = new Scanner(System.in);
System.out.println("请输入月份:");
int month = scanner.nextInt( );// 月
if (month >= 1 && month <= 12) {if (month == 2) {System.out.println("28天或者29天");} else if (month == 4 || month == 6 || month == 9 || month == 11) {System.out.println("30天");} else {System.out.println("31天");}
} else {System.out.println("输入的月份有误!!!");
}

三、选择语句(switch,了解)

类似于else-if,实现多选一的效果,语法

switch(){case:执行语句;break;case:执行语句;break;...default:执行语句;
}

switch: 转换,选择 case: 情况,案例 break: 破坏打断 default: 默认

package com.qf.contrl;/*** --- 天道酬勤 ---** @author QiuShiju* @date 2024/2/22* @desc 演示switch*/
public class Demo4 {public static void main(String[] args) {// 老年机打电话,长按1打给110// 长按2打给120,长按3打给119// 其他打给儿子/女儿int num = 1;switch (num) { // ()内是数值,不能写判断式子case 1:   // case后是定值,不能写变量,后面是冒号:System.out.println("打给110" );break; // break可以不写,不写的话会造成case击穿case 2:System.out.println("打给120" );break;case 3:System.out.println("打给119" );break;default:  // 以上case都不成立,执行此处System.out.println("打给孩子们!!" );}}
}

四、循环语句

循环语句的作用: 就是能代码循环重复执行

为什么? 提供效率…减少代码重复的

如何实现重复循环?

  • while循环
  • do-while循环
  • for循环

4.1 while

while(布尔表达式){

​ 执行语句;

}


执行流程:

  • 遇到while,判断式子
  • 如果为true,执行{}内语句,回头继续再判断
  • 直到当判断结果为false时跳出循环

image-20240222151839663

练习题

package com.qf.contrl;/*** --- 天道酬勤 ---** @author QiuShiju* @date 2024/2/22* @desc while语句*/
public class Demo5 {public static void main(String[] args) {// 输出5遍 I Love China.System.out.println("-- 输出5遍 I Love China. --" );int i = 1;while (i <= 5) {System.out.println("I Love China");i++;}/*** 一个合适的循环,需要有四部分* 1) 循环初始值* 2) 循环控制条件* 3) 循环内容* 4) 循环迭代*/// 输出1-10System.out.println("-- 输出1-10 --" );int a = 1;while (a < 11) {System.out.println(a );a++;}// 输出10-1System.out.println("-- 输出10-1 --" );int b = 10;while (b > 0) {System.out.println(b );b--;}// 输出1-100中既能被3整除又能被5整除的所有数System.out.println("-- 输出1-100中既能被3整除又能被5整除的所有数 --" );int c = 1;while (c < 101) {if (c % 3 == 0 && c % 5 == 0){System.out.println(c );}c++;}// 找出1~2024年中所有的闰年// (年份能被4整除,且不能被100整除,或者能被400整除的年份)System.out.println("-- 找出0~2024年中所有的闰年 --" );int year = 1;while (year <= 2024) {if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){System.out.println(year+"年是闰年!" );}year++;}}
}

4.2 do-while(了解)

do {

​ 执行语句;

}while(布尔表达式);

package com.qf.contrl;/*** --- 天道酬勤 ---** @author QiuShiju* @date 2024/2/22* @desc do-while*/
public class Demo6 {public static void main(String[] args) {// 输出1-10int a = 1;do {System.out.println(a );a++;}while (a < 11);// 输出1-100的偶数int b = 1;do {if (b % 2 == 0){System.out.println(b );}b++;}while (b < 101);/*** while和do-while区别* 1 while是先判断后执行* 2 dowhile是先执行一次再判断*/}
}

4.3 for(重点)

for循环是使用的最多的循环语句!!!

语法

for(初始值;控制条件;迭代){执行语句;
}

image-20240222162931276

练习

package com.qf.contrl;/*** --- 天道酬勤 ---** @author QiuShiju* @date 2024/2/22* @desc for循环*/
public class Demo7 {public static void main(String[] args) {// 输出1-10for (int i = 1; i < 11; i++) {System.out.println(i);}// 求出1-10的和int sum = 0;for (int i = 1; i < 11; i++) {// sum = i + sum;sum += i;}System.out.println("1-10的和:sum = " + sum);// 求出1-100的奇数和int sum2 = 0;for (int i = 1; i < 101; i++) {if (i % 2 == 1) {sum2 += i;}}System.out.println(sum2);}
}

4.4 for循环嵌套[熟练]

    public static void main(String[] args) {System.out.print("输出后不换行");System.out.println("输出内含后,会换行");// -------------/*** 要求输出数据只能输出一颗** 打印出正方形* ********** ********** ********** **********/// 外层循环控制行数for(int i = 1;i < 5;i++) {// 内层循环控制列数for (int j = 1; j < 10; j++) {System.out.print("*");// 输出后不换行}System.out.println( );// 纯换行}/*** ** *** **** ***** ****** *******/for(int i = 1;i < 7;i++) {for(int j = 1;j <= i;j++) {System.out.print("*");}System.out.println( );}}

五、总结

今日重点

  • if和if-else
  • while和for循环

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/695882.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文了解web开发基础知识【HTML、CSS、JavaScript】

文章目录 1 前言1.1 HTML1.2 CSS1.3 JavaScript1.4 理解HTML、CSS、JavaScript之间的关系 2 HTML2.1 什么是网页2.2 什么是HTML2.2.1 文本内容2.2.1.1 标题 2.2.2 图像2.2.3 链接2.2.4 列表2.2.5 表格2.2.6 HTML代码注释 2.3 第一个HTML文件2.3.1 示例2.3.2 补充2.3.2.1 < l…

苹果iPad通过Code APP应用实现SSH连接服务器远程进行开发

文章目录 1. 在iPad下载Code APP2.安装cpolar内网穿透2.1 cpolar 安装2.2 创建TCP隧道 3. iPad远程vscode4. 配置固定TCP端口地址4.1 保留固定TCP地址4.2 配置固定的TCP端口地址4.3 使用固定TCP地址远程vscode 本文主要介绍开源iPad应用IDE Code App 如何下载安装&#xff0c;并…

基于springboot + vue实现的前后端分离-酒店管理系统

项目介绍 基于springboot vue实现的酒店管理系统一共有酒店管理员和用户这两种角色。 管理员功能 登录&#xff1a;管理员可以通过登录功能进入系统&#xff0c;确保只有授权人员可以访问系统。用户管理&#xff1a;管理员可以添加、编辑和删除酒店的用户&#xff0c;包括前…

运维SRE-18 自动化批量管理-ansible4

12.2handles handles触发器(条件)&#xff0c;满足条件后再做什么事情应用场景&#xff1a;想表示&#xff1a;配置文件变化&#xff0c;再重启服务 配置handlers之前&#xff0c;每次运行剧本都会重启nfs&#xff0c;无论配置文件是否变化。 [rootm01 /server/ans/playbook]…

C++--输入一个数字判断是否是素数

一.算法思路 要判断数字n是否是素数&#xff0c;那么用n除以一个2~根号n的数字i&#xff0c;若有一个被整除&#xff0c;说明n不是素数&#xff0c;否则是素数 二.完整代码 #include<cmath> #include<iostream> bool IsPrime(int n) {for (int i 2;i < sqrt(n…

【MATLAB GUI】 1. 普通按钮、静态文本和可编辑文本

看B站up主freexyn的freexyn编程实例视频教程系列36Matlab GUI的学习笔记 文章目录 初步认识普通按钮静态文本和可编辑文本设计一个简易计算机 初步认识普通按钮 任务要求&#xff1a;点击一次“100”按钮&#xff0c;按钮上的文字值就递增1&#xff1b;点击“close”按钮&…

UniApp中打开蓝牙所需哪些权限

Hello&#xff0c;各位同学们新年好呀&#xff0c;咱们又见面了&#xff01;我是咕噜铁蛋&#xff01;随着移动应用的普及&#xff0c;蓝牙技术正变得越来越重要。在UniApp中&#xff0c;打开蓝牙功能为我们提供了更多便利和创新的可能性。然而&#xff0c;很多人可能不清楚在U…

【计算机网络】socket 网络套接字

网络套接字 一、端口号1. 认识端口号2. socket 二、认识TCP协议和UDP协议1. TCP协议2. UDP协议 三、网络字节序四、socket 编程1. socket 常见API2. sockaddr 结构3. 编写 UDP 服务器&#xff08;1&#xff09;socket()&#xff08;2&#xff09;bind()&#xff08;3&#xff0…

【Unity编辑器扩展】Unity编辑器主题颜色设置工具

可以用来应用和自定义你的Unity编辑器。14个主题可供选择。轻松创建自己的主题。 主题展示:

明御运维审计与风险控制系统漏洞复现

简介 明御运维审计与风险控制系统是安恒信息在多年运维安全管理的理论和实践经验积累的基础上,采用B/S架构,集“身份认证、账户管理、控制权限、日志审计”于一体,支持多种字符终端协议、文件传输协议、图形终端协议、远程应用协议的安全监控与历史查询,具备全方位运维风险…

ChatGPT丨“成像光谱遥感技术中的AI革命:ChatGPT应用指南“

遥感技术主要通过卫星和飞机从远处观察和测量我们的环境&#xff0c;是理解和监测地球物理、化学和生物系统的基石。ChatGPT是由OpenAI开发的最先进的语言模型&#xff0c;在理解和生成人类语言方面表现出了非凡的能力。本文重点介绍ChatGPT在遥感中的应用&#xff0c;人工智能…

【医学大模型】临床推理 + 大模型,推理感知型诊断框架

临床推理 大模型&#xff0c;推理感知型诊断框架 提出背景Module II-1: 少数样本CoT推理Module II-2: 单模态学生蒸馏Module II-3: 多模态学生蒸馏 提出背景 论文&#xff1a;https://arxiv.org/pdf/2312.07399.pdf 这篇文章提出了一种新的诊断框架&#xff0c;专注于利用大型…

Android T 远程动画显示流程其二——动画的添加流程(更新中)

前言 接着上篇文章分析 Android T 远程动画显示流程其一 切入点——处理应用的显示过渡 下面&#xff0c;我们以从桌面点击一个应用启动的场景来分析远程动画的流程&#xff0c;窗口添加的流程见Android T WMS窗口相关流程 这里我们从AppTransitionController.handleAppTran…

HAL STM32 HW I2C DMA + SSD1306/SH1106驱动示例

HAL STM32 HW I2C DMA SSD1306/SH1106驱动示例 &#x1f4cd;硬件I2C DMA驱动参考&#xff1a;https://blog.csdn.net/weixin_45065888/article/details/118225993 &#x1f4cc;github上的相关项目&#xff1a;https://github.com/taburyak/STM32_OLED_SSD1306_HAL_DMA &am…

五种多目标优化算法(MOGWO、MOJS、NSWOA、MOPSO、MOAHA)性能对比,包含6种评价指标,9个测试函数(提供MATLAB代码)

一、5种多目标优化算法简介 1.1MOGWO 1.2MOJS 1.3NSWOA 1.4MOPSO 1.5MOAHA 二、5种多目标优化算法性能对比 为了测试5种算法的性能将其求解9个多目标测试函数&#xff08;zdt1、zdt2 、zdt3、 zdt4、 zdt6 、Schaffer、 Kursawe 、Viennet2、 Viennet3&#xff09;&#xff0…

Linux服务器安装MySQL8

进入安装目录 /usr/local下载 wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz解压,重命名 tar -Jxvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xzmv mysql-8.0.20-linux-glibc2.12-x86_64 mysql8创建用户组、用户 # 需要…

fastApi笔记01-路径参数

路径参数 使用与 Python 格式化字符串相同的语法来声明路径"参数"或"变量" from fastapi import FastAPIapp FastAPI()app.get("/items/{item_id}") def read_item(item_id):return {"item_id": item_id} http://127.0.0.1:8000/i…

SpringSecurity安全框架

我们使用这个springSecurity安全框架,作用是认证,授权,将用户的权限和对应的资源进行绑定,默认的是在内存中保存的,实际开发中,是需要根据项目业务的需求对某些方法进行重写,使数据库中权限对应的资源进行绑定,就是查看当前登录的用户所扮演的角色,该角色有哪些权限 授权 1内…

【操作系统】

计算机操作系统 计算机是如何让用户得到好的体验什么是操作系统&#xff08;OS&#xff09;操作系统如何管理 计算机是如何让用户得到好的体验 计算机系统是由计算机硬件和软件组成的。用户使用计算机&#xff0c;比如在文本文件填写内容&#xff0c;通过邮箱发送邮件&#xf…

Aloudata StarRocks 直播预告:指标平台的物化加速实践

数据指标的管理、研发和应用一直存在着诸多痛点&#xff0c;这些挑战促使了对指标平台解决方案的需求不断增长。2月29日&#xff08;星期四&#xff09;19:00&#xff0c;Aloudata 将与 StarRocks 携手举办线上直播&#xff0c;深入揭秘第三代指标平台物化加速的强大能力&#…