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) { // 整除就是余数为0
            System.out.println("num = " + num+",是偶数" );
        } else {
            System.out.println("num = " + num+",是奇数" );
        }

        // 编写一个程序,输入用户名和密码,
        // 要求用户名和密码同时正确才输出"登录成功",
        // 否则输出"用户名或密码错误"
        // 假设正确的用户名是数字1,密码是数字2
        System.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-10
        System.out.println("-- 输出1-10 --" );
        int a = 1;
        while (a < 11) {
            System.out.println(a );
            a++;
        }

        // 输出10-1
        System.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-10
        int 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-10
        for (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循环

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker Desktop 4.27.1 Windows 10 安装 教程

Docker Desktop 4.27.1 Windows 10 安装 版本要求windows 版本要求wsl 版本要求docker desktop 版本 安装首先确保系统版本符合要求前提下安装wsl安装 Dockers Desktop安装说明 安装问题docker Desktop 无法正常启动&#xff0c;提示wsl 相关信息wsl --install 执行输出帮助日志…

[Flink01] 了解Flink

Flink入门系列文章主要是为了给想学习Flink的你建立一个大体上的框架&#xff0c;助力快速上手Flink。学习Flink最有效的方式是先入门了解框架和概念&#xff0c;然后边写代码边实践&#xff0c;然后再把官网看一遍。 Flink入门分为四篇&#xff0c;第一篇是《了解Flink》&…

如何在OpenWRT安装内网穿透工具实现远程访问本地搭建的web网站界面

文章目录 前言1. 检查uhttpd安装2. 部署web站点3. 安装cpolar内网穿透4. 配置远程访问地址5. 配置固定远程地址 前言 uhttpd 是 OpenWrt/LuCI 开发者从零开始编写的 Web 服务器&#xff0c;目的是成为优秀稳定的、适合嵌入式设备的轻量级任务的 HTTP 服务器&#xff0c;并且和…

2024 全国水科技大会暨第二届智慧水环境管理与技术创新论坛

论坛二&#xff1a;第二届智慧水环境管理与技术创新论坛 召集人&#xff1a;刘炳义 武汉大学智慧水业研究所所长、教授 为贯彻落实中共中央国务院印发《数字中国建设整体布局规划》和国务院关于印发《“十四五”数字经济发展规划》的通知&#xff0c;推动生态环境智慧治理&…

stm32和嵌入式linux可以同步学习吗?

在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「stm3的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;如果需要使用STM32&#xff0c;建…

源码剖析Spring依赖注入:今天你还不会,你就输了

在之前的讲解中&#xff0c;我乐意将源码拿出来并粘贴在文章中&#xff0c;让大家看一下。然而&#xff0c;我最近意识到这样做不仅会占用很多篇幅&#xff0c;而且实际作用很小&#xff0c;因为大部分人不会花太多时间去阅读源码。 因此&#xff0c;从今天开始&#xff0c;我将…

【Vue3】toRefs和toRef在reactive中的一些应用

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

sql server想要小数点后向下取整怎么搞

select FORMAT(3.169, N2) as 四舍五入1, CAST(3.169 AS decimal(9,2)) as 四舍五入2, ROUND(3.169, 2) as 四舍五入3, CAST(FLOOR(3.169 * 100) / 100 AS decimal(9,2)) as 向下取整1, FLOOR(3.169 * 100) / 100 as 向下取整2, ceiling(3.169 * 100) / 100 as 向上取整—…

如何使用 GitHub Action 在 Android 中构建 CI-CD

如何使用 GitHub Action 在 Android 中构建 CI-CD 一、什么是 CI/CD&#xff1f;二、什么是 CI&#xff1a;持续集成&#xff1f;三、什么是CD&#xff1a;持续部署&#xff1f;3.1 持续交付3.2 持续部署 四、使用 GitHub 操作在 Android 中构建 CI-CD 管道4.1 步骤 五、什么是…

K210基础实验——点亮LED灯

一、目的是点亮K210开发板左下角的LED0和LED1&#xff0c;LED0是红灯&#xff0c;LED1是绿灯&#xff0c;两颗LED灯都是低电平点亮&#xff0c;高电平熄灭。 二、这是原理图上的硬件连接&#xff0c;LED0连接的是IO0&#xff0c;LED1连接的是IO17。 三、在src目录下新建文件夹 …

P2670 [NOIP2015 普及组] 扫雷游戏 ---- 洛谷

题目描述 扫雷游戏是一款十分经典的单机小游戏。在 n 行 m 列的雷区中有一些格子含有地雷&#xff08;称之为地雷格&#xff09;&#xff0c;其他格子不含地雷&#xff08;称之为非地雷格&#xff09;。玩家翻开一个非地雷格时&#xff0c;该格将会出现一个数字——提示周围格子…

《游戏引擎架构》--学习3

内存管理 优化动态内存分配 维持最低限度的堆分配&#xff0c;并且永不在紧凑循环中使用堆分配 容器 迭代器 Unicode

uni-app搭建h5项目

一、 打开官方网站 https://uniapp.dcloud.net.cn/quickstart-cli.html 二、找到使用vue-cli命令行&#xff0c;按照文档上的步骤进行搭建 全局安装 vue-cli npm install -g vue/cli搭建项目 可以根据命令行搭建&#xff0c;搭建vue2.0对应的是webpack&#xff0c; 也可以搭…

vulnhub靶场---->DOUBLETROUBLE: 1

详细思路 知识点1.网段探测2.nmap扫描3.目录扫描4.隐写5.上传木马文件6.awk提权 知识点 图片隐写----->steghide 密码爆破----->stegseek awk提权------>sudo awk BEGIN {system("/bin/bash")}1.网段探测 kali:192.168.0.131 靶机&#xff1a;192.168.0.1…

微信小程序-消息订阅整体流程

1.首先登录微信公众平台&#xff0c;网址&#xff1a;微信公众平台 2.找到“订阅消息”&#xff0c;如果订阅消息没开启&#xff0c;可以点击开启&#xff0c;然后根据自己的消息需求到公共模版里找合适的&#xff0c;然后点击选用&#xff0c;如果没有比较合适的可以申请模版…

【开源】SpringBoot框架开发音乐平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示 四、核心代码4.1 查询单首音乐4.2 新增音乐4.3 新增音乐订单4.4 查询音乐订单4.5 新增音乐收藏 五、免责说明 一、摘要 1.1 项目介绍 基于微信小程序JAVAVueSpringBootMySQL的音乐平台&#xff0c;包含了音乐…

使用maven集成spring在测试的时候报出了如下的异常:version 60

使用maven集成spring在测试的时候报出了如下的异常&#xff1a; Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 60 解决&#xff1a;

MySQL学习笔记3: MySQL数据库基础

目录 前言目标数据库操作&#xff08;针对database 的操作&#xff09;1. 创建数据库 create database 数据库名;2. 查看数据库 show databases;3. 选中数据库 use 数据库名;4. 删除数据库 drop database 数据库名; mysql中支持的数据类型1. 数值类型: NUMERIC(M,D)2. 字符串类…

LeetCode | 两数相加 C语言

Problem: 2. 两数相加 文章目录 思路解题方法Code一些感想 思路 主要是一一相加和逆序的方式存储 先说逆序储存&#xff0c;看下图 我们先声明出指针p和指针q&#xff0c;还有指针head&#xff08;主要用于return上而已&#xff09;&#xff0c;然后进行一系列操作&#xff0c…

【Spring Cloud】实现微服务调用的负载均衡

文章目录 什么是负载均衡自定义实现负载均衡启动shop-product微服务通过nacos查看微服务的启动情况自定义实现负载均衡 基于Ribbon实现负载均衡添加注解修改服务调用的方法Ribbon支持的负载均衡策略通过修改配置来调整 Ribbon 的负载均衡策略通过注入Bean来调整 Ribbon 的负载均…