day03_if_循环

news2024/12/29 9:44:07

今日内容

1.if.elseif
2.循环
3.控制关键词

复习

一 运算符
	算术,赋值,关系,逻辑,三目
		!,非,取反的作用
		boolean r = !true; //false
		boolean r2 = !(1 > 0);// false
二 键盘录入
	1) 导包 import java.util.Scanner;
	2) 创建扫描器 Scanner scanner = new Scanner(System.in);
	3) 调用方法完成输入
	   int a = scanner.nextInt();
三 if
	if 单分支
	ifelse 双分支

作业

ublic class Demo9 {

    public static void main(String[] args) {
        System.out.println("-------第一题--------");
        // 编写程序, 找3个数最大值
        int a = 1;
        int b = 2;
        int c = 3;
        // 找3个数最大值
        if (a > b) {
            if (a > c) {
                System.out.println("a大");
            } else {
                System.out.println("c大");
            }
        } else {
            if (b > c) {
                System.out.println("b大");
            } else {
                System.out.println("c大");
            }
        }
        System.out.println("-------第二题--------");
        System.out.println("求出3个数的平均数");

        // 编写一个程序,计算用户输入的3个数字的平均值并显示出来。
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入第1个数:");
        int x = scanner.nextInt( );
        System.out.println("请输入第2个数:");
        int y = scanner.nextInt( );
        System.out.println("请输入第3个数:");
        int z = scanner.nextInt( );

        /**
         * 拼接字符串的口诀
         * 1. 先献丑完整的句子
         * 2. 再替换
         *    选中,"",中间,++,中间变量
         */
        System.out.println("您输入的数字是" + x + "," + y + "," + z + "");
        // System.out.println("您输入的数字是" + "x" + ",y" + ",z");

        double r = (x + y + z) / 3.0;
        System.out.println("3个数的平均数是: " + r );

    }

}
public class Demo10 {
    public static void main(String[] args) {
        // 定义一个数,输出该数是不是既能被3整除也能被5整除
        // 什么叫整除? 余数为0
        int a = 15;
        if (a % 3 == 0 && a % 5 == 0) {
            System.out.println("是既能被3整除也能被5整除" );
        } else {
            System.out.println("不是既能被3整除也能被5整除" );
        }

        // 定义一个年龄,判断该年龄是否可以考驾照
        // 假设法定年龄18-70
        int age = 20;
        if (age >= 18 && age <= 70) {
            System.out.println("可以考驾照" );
        } else {
            System.out.println("不能考驾照" );
        }
        // java中不能写连续判断: 18 < age < 70,这样报错
    }
}

一、if.elseif

已经学过

  • if 单分支

    if(布尔表达式){
        
    }
    
  • if.else 双分支

    if(布尔表达式){
          
    } else {
          
    }
    

现在再学习一个

  • if.elseif.elseif… 多分支,实现多选一

    if(布尔表达式){
          
    } else if(布尔表达式){
          
    } else if(布尔表达式){
          
    } else if(布尔表达式){
          
    } else {
          
    }
    
public class Demo1 {
    public static void main(String[] args) {
        // 假设分数,根据分数选学校
        // 要求700分以上进清华
        // 600-700分进北大
        // 500-600分进郑大
        // 500分以下进厂
        int score = 350;
        if (score >= 700) {
            System.out.println("上清华" );
        } else if (score >= 600) {
            System.out.println("上北大" );
        } else if (score >= 500) {
            System.out.println("上郑大" );
        } else {
            System.out.println("进厂" );
        }

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

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

二、循环

回忆代码的执行流程

  • 最开始时代码从上至下一行一行执行
  • 使用if,ifelse,ifelseif等语句实现代码有选择的执行

现在马上要学习的循环,可以实现

  • 代码重复执行

实现代码循环语法

  • while
  • dowhile
  • for

2.1 while【重要】

ps: 任何循环都要四要素

  • 循环初始值
  • 循环控制条件
  • 循环迭代(变化的值)
  • 循环体(循环要 做的事情)

while语法

声明+赋值变量; // 循环初始值
while(布尔表达式){// 循环控制条件
    执行语句;// 循环体(循环要 做的事情)
    ++--;// 循环迭代(变化的值)
}

while执行流程

  • 从上至下依次执行,遇到while,开始判断
  • 如果结果是对(true)就执行{}内语句
  • 执行迭代
  • 继续回头再执行while后的判断,再根据判断结果对就执行{}内语句
  • 只有当while后判断为false时不再循环
 * @desc while循环
 */
public class Demo2 {

    public static void main(String[] args) {
        // 重复5遍中午吃 - 捞面条

        int i = 1; // 初始值
        while(i < 6) { // 控制条件
            System.out.println("中午吃捞面条" ); // 循环体,即重复的内容
            i++; // 循环迭代(每次都变化的值)
        }
        System.out.println("结束" );

        // 输出语句输出: 11-20这10个数
        int a = 11; // 初始值
        while(a <= 20) {// 控制条件
            System.out.println(a );// 重复内容
            a++;// 迭代
        }

        // 输出语句输出100-1
        int b = 100;
        while(b > 0) {
            System.out.println(b );
            b--;
        }

        /**
         * 敲代码需要注意:
         * 随着学完if,ifelse,while等代码
         * 出现好多{}
         * 要记住{}一定成对儿出现,如果报错自己手动比对
         * ----------------------------
         * 格式缩进,每个{}内缩进
         */

    }
}

2.2 dowhile【不重要】

dowhile也是一种循环

do {
   执行语句;
}while(条件);
 * @desc dowhile 循环
 */
public class Demo3 {

    public static void main(String[] args) {
        // 重复输出5遍 做俯卧撑
        int i = 1; // 初始值
        do {
            System.out.println("做俯卧撑" );// 循环内容
            i++;//迭代
        }while(i < 6); // 控制条件

        /**
         * 与while区别在于:
         * dowhile会先do(先执行代码)
         * 后再判断while
         */
        // 输出1-10中的奇数
        int a = 1;
        do {
            if (a % 2 == 1) {
                System.out.println(a );
            }
            a++;
        }while (a < 11);
    }
}

2.3 for循环【非常重要】

for循环语法

for (初始值;控制条件;迭代) {
    重复的内容语句;
}

image-20231011113425411

 * @desc for循环
 */
public class Demo4 {

    public static void main(String[] args) {
        System.out.println("------ 第一题 -----" );
        // 重复输出1-10
        for (int i = 1 ; i < 11 ; i++) {
            System.out.println(i );
        }

        System.out.println("------ 第二题 -----" );
        // 练习1 输出1-10的奇数
        for (int i = 1; i < 10; i++) {
            if (i % 2 == 1){
                System.out.println("奇数"+i );
            }
        }
        System.out.println("------ 第三题 -----" );
        // 练习2 输出1-10的偶数
        for (int i = 1; i < 11; i++) {
            if (i % 2 == 0){
                System.out.println("偶数"+i );
            }
        }
        System.out.println("------ 第四题 -----" );
        // 练习3 输出1-10中3的倍数
        for (int i = 1; i < 11; i++) {
            if (i % 3 == 0){
                System.out.println("3的倍数"+i );
            }
        }
        System.out.println("------ 第五题 -----" );
        // 练习4 输出1-100中所有既能被3整除又能被5整除的数
        for (int i = 1; i < 101; i++) {
            if (i % 3 == 0 && i % 5 == 0){
                System.out.println(i );
            }
        }
    }
}

练习题

计算1-10的和
   public static void main(String[] args) {
        // 求1-10的和利用循环重复相加
        // 1+2+3+4+5+6+7+8+9+10
        int sum = 0;// 定义变量,sum意思和,即准备存储相加的和
        for (int i = 1; i < 11; i++) {
            // sum = sum + i;
            sum += i;
        }
        System.out.println(sum );
    }

三、控制关键词【熟悉】

循环要么是死循环(一直循环)、要么是固定的循环次数,那么能不能在循环过程中控制循环?

怎么控制? 比如终止循环,或者跳过循环


这就是今天要学习的控制循环的关键词

  • break
  • continue
  • return (并不是主要控制循环,只是用在循环中)

3.1 break

break 翻译: 终止,破坏

作用: 终止循环不再执行

public class Demo5 {

    public static void main(String[] args) {
        System.out.println("---- 演示1 ----" );
        // 输出1-10,但是在输出到5时退出循环
        int i = 1;
        while (i < 11){
            System.out.println(i );
            if (i == 5) {
                break;// 退出循环
            }
            i++;
        }
        System.out.println("---- 演示2 ----" );
        for (int j = 1; j < 11; j++) {
            System.out.println(j );
            if (j == 5) {
                break;// 退出循环
            }
        }
    }
}

练习: 模拟网站登录,输入账号登录网站,假设账号是123

  • 如果账户对则输出欢迎登录
  • 如果错则再输入一遍账号
  • 最多允许输入3次账号,3次内只要有一次输入正确即可
  • 3次全错则提示账户锁定

ps:合理使用输出语句,使代码显示效果,以及提示语更贴切 (站在使用者角度去设计程序)

       System.out.println("---- 演示账号登录 ----" );
        Scanner scanner = new Scanner(System.in);
        // 循环来实现重复输入账号
        for (int k = 1;k < 4;k++){
            System.out.println("请输入账号:" );
            int id = scanner.nextInt( );

            if (id == 123) {// 如果账号对,break可以提前结束循环
                System.out.println("欢迎登录" );
                break; // 停止循环
            } else {
                System.out.println("账户错误" );
            }
        }

3.2 continue

continue 翻译: 继续

作用: 先让循环停一次,继续后续循环

 * @desc continue继续循环
 */
public class Demo7 {

    public static void main(String[] args) {
        // 逢七过,输出时不要7
        for (int i = 1; i < 11; i++) {
            if (i == 7) {
                continue;// 跳过这一次循环,继续下次循环
            }
            System.out.println(i );
        }
        System.out.println("后续..." );
    }
}

3.3 return

return 翻译: 返回

作用: 无论是循环还是if等其他语句,遇到return 结束该方法

 * @desc
 */
public class Demo8 {
    public static void main(String[] args) {
        for (int i = 1; i < 10; i++) {
            if (i == 5){
                break;// 中断循环
            }
            System.out.println(i );
        }
        System.out.println("break后" );// 可以执行

        for (int i = 1; i < 10; i++) {
            if (i == 5){
                continue; // 跳过一次循环,继续后续循环
            }
            System.out.println(i );
        }
        System.out.println("continue后" );// 可以执行
        for (int i = 1; i < 10; i++) {
            if (i == 5){
                return;
                // 结束该方法,当前是main方法,所以main方法结束,程序就结束了
            }
            System.out.println(i );
        }
        System.out.println("return后" );//这句话不执行,因为上面return时方法已经结束
    }
}

3.4 练习

编写一个程序,最多接收10个数,求这些数的和
注意:中途用户可以通过输入886终止程序,并显示输入数的和
		System.out.println("----- 求和练习plus -----" );
        Scanner scanner = new Scanner(System.in);
        int sum2 = 0;
        for (int i = 1; i < 11; i++) {
            System.out.println("请输入第"+i+"数字:" );
            int a = scanner.nextInt( );
            if (a == 886){
                System.out.println("提前结束~" );
                break;
            }
            sum2 = sum2 + a;
        }
        System.out.println("相加和 ==> " + sum2 );

四、变量作用域

变量的作用范围

 * @desc 变量的作用域
 */
public class Demo6 {

    public static void main(String[] args) {

        /**
         * 变量的作用域: 是离它最近的花括号{}
         * 在作用范围外无法使用
         * 在作用范围内可以重复使用,但是不能出现重名的变量
         */
        int i = 1;
        System.out.println(i );
        if (true){
            int a = 1;
            System.out.println(a );
            System.out.println(i );
        }
        // System.out.println(a );
        System.out.println(i );

        for (int a = 1;a<10;a++){
        }

        for (int a = 1;a<10;a++){
        }
    }
}

image-20231011155227957

单词

num 数字

score 分数

while 当什么时候

sum 和

break 破坏

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

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

相关文章

3.5 高速以太网

思维导图&#xff1a; 3.5.1 100BASE-T以太网 **3.5 高速以太网** 随着技术进步&#xff0c;以太网的传输速度不断增加。从早期的10 Mbit/s的速度&#xff0c;增长到了1 Gbit/s甚至更快。以下是一些关于高速以太网技术的简介。 **3.5.1 100BASE-T以太网** - **定义**&#…

信息系统项目管理师第四版学习笔记——项目沟通管理

管理基础 沟通模型的关键要素包括&#xff1a;编码、信息和反馈信息、媒介、噪声、解码。 在编制书面或口头信息的时候&#xff0c;应使用书面沟通的5C原则&#xff0c;以减轻理解错误&#xff1a;正确的语法和拼写(Correctness)、简洁的表述(Concise)、清晰的目的和表述(Cla…

传统工厂如何搭建蒸汽流量远程无线抄表系统?

一、应用背景 2021年国务院政府工作报告中指出&#xff0c;扎实做好碳达峰、碳中和各项工作&#xff0c;制定2030年前碳排放达峰行动方案&#xff0c;优化产业结构和能源结构&#xff0c;特别是近期煤炭价格上涨导致蒸汽价格大幅上涨&#xff0c;节能减排显得更加重要&#xf…

深度学习之微调

在现代深度学习领域&#xff0c;精细调整&#xff08;Fine-tune&#xff09;已经成为一种非常重要的技术手段。 预训练模型 在介绍finetune之前&#xff0c;先了解一下什么是预训练模型。在搭建一个网络模型来完成一个特定的图像分类的任务时&#xff0c;首先&#xff0c;需要…

ad5665r STM32 GD32 IIC驱动设计

本文涉及文档工程代码&#xff0c;下载地址如下 ad5665rSTM32GD32IIC驱动设计,驱动程序在AD公司提供例程上修改得到,IO模拟的方式进行IIC通信资源-CSDN文库 硬件设计 MCU采用STM32或者GD32,GD32基本上和STM32一样,针对ad566r的IIC时序操作是完全相同的. 原理图设计如下 与MC…

【C++ 】面向对象三大特性之封装和继承 详解

目录 0 引言1 封装1.1 封装是什么&#xff1f;1.2 封装的优缺点 2 继承2.1 继承的定义2.2 继承方式2.3 继承时名字遮蔽2.6 遮蔽、函数重写、函数重载的区别2.5 继承时的对象模型2.6 派生类与基类互相赋值原则2.6 继承时的构造函数和析构函数 &#x1f64b;‍♂️ 作者&#xff…

LeetCode二叉树OJ

目录 剑指 Offer 55 - I. 二叉树的深度 - 力扣&#xff08;LeetCode&#xff09; 965. 单值二叉树 - 力扣&#xff08;LeetCode&#xff09; 100. 相同的树 - 力扣&#xff08;LeetCode&#xff09; 101. 对称二叉树 - 力扣&#xff08;LeetCode&#xff09; 二叉树遍历_牛客题…

【网络编程】套接字编程——TCP通信

文章目录 一、简单的TCP网络程序1. 单进程版2. 多进程版3. 多线程版 二、线程池版TCP网络程序三、日志与守护进程1. 日志2. 守护进程进程组和会话的引出守护进程的创建 一、简单的TCP网络程序 1. 单进程版 &#x1f495; tcpServer.hpp #pragma once #include "err.hpp…

iPhone手机记笔记工具选择用哪个

iPhone手机大家应该都比较熟悉&#xff0c;其使用性能是比较流畅的&#xff0c;在iPhone手机上记录笔记可以帮助大家快速地进行总结工作、记录工作内容等&#xff0c;在iPhone手机上记笔记工具选择用哪个呢&#xff1f; 可以在iPhone手机上使用的笔记工具是比较多的&#xff0…

OPC UA客户端工具Softing OPC Client使用图文教程

简介 Softing OPC Client 是一个用于与 OPC (OLE for Process Control) 服务器进行通信的工具。下面是一个详细的图文教程&#xff0c;以帮助您使用 Softing OPC Client 进行 OPC 通信。 1. 下载和安装 Softing OPC Client 首先&#xff0c;您需要从 Softing 官方网站下载 S…

csgo饰品市场会崩盘吗?如何评价现在的csgo饰品市场?

如何评价现在的csgo市场&#xff1f; csgo饰品市场会崩盘吗&#xff1f;如何评价现在的csgo饰品市场&#xff1f; 如何来评价现在CSGO市场&#xff1f;哈喽&#xff0c;大家好&#xff0c;我是童话姐姐&#xff0c;那么从长远来看&#xff0c;我觉得这个CSGO市场它一定是呈现一…

渗透测试KAILI系统的安装环境(第八课)

KAILI系统的安装环境(第八课) Kaili是一款基于PHP7的高性能微服务框架&#xff0c;其核心思想是面向服务的架构&#xff08;SOA&#xff09;&#xff0c;支持http、websocket、tcp等多种通信协议&#xff0c;同时还提供了RPC、Service Mesh、OAuth2等功能。Kaili框架非常适合构…

c语言练习85:通讯录的实现(基于顺序表实现)

通讯录的实现(基于顺序表实现&#xff09; 基于动态顺序表实现通讯录 C语⾔基础要求&#xff1a;结构体、动态内存管理、顺序表、⽂件操作 1、功能要求 1&#xff09;⾄少能够存储100个⼈的通讯信息 2&#xff09;能够保存⽤⼾信息&#xff1a;名字、性别、年龄、电话、地址…

Android性能优化,可以从那些方面解决?方案一览

说到Android性能优化大家都很熟悉&#xff0c;这是一个老生畅谈的话题与技术。本篇讲讲Android性能优化需要学习那些&#xff0c;让这些技术做到极致。虽然老生常谈但是一直是一个合格的Android开发人员需要掌握的重点。要想进入大厂也是重要的敲门砖。 Android性能优化重要性…

【FreeRTOS】【STM32】02 FreeRTOS 移植

基于 [野火]《FreeRTOS%20内核实现与应用开发实战—基于STM32》 正点原子《STM32F429FreeRTOS开发手册_V1.2》 准备 基础工程&#xff0c;例如点灯 FreeRTOS 系统源码 FreeRTOS 移植 上一章节已经说明了Free RTOS的源码文件在移植时所需要的&#xff0c;FreeRTOS 为我们提供…

leetcode:1967. 作为子字符串出现在单词中的字符串数目(python3解法)

难度&#xff1a;简单 给你一个字符串数组 patterns 和一个字符串 word &#xff0c;统计 patterns 中有多少个字符串是 word 的子字符串。返回字符串数目。 子字符串 是字符串中的一个连续字符序列。 示例 1&#xff1a; 输入&#xff1a;patterns ["a","abc&…

AlGaN/GaN结构的氧基数字蚀刻

引言 宽带隙GaN基高电子迁移率晶体管(HEMTs)和场效应晶体管(fet)能够提供比传统Si基高功率器件更高的击穿电压和电子迁移率。常关GaN非常需要HEMT来降低功率并简化电路和系统架构&#xff0c;这是GaN HEMT技术的主要挑战之一。凹进的AlGaN/GaN结构是实现常关操作的有用选择之一…

使用IDEA自带功能将WSDL转java

好像IDEA2018版本之后不再支持webservice转java&#xff0c;可以下载2018.3.6版本的IDEA&#xff08;直接IDEA官网下载即可&#xff09;&#xff0c;然后打开一个项目&#xff0c;在根目录处单击右键 选择Generate Java Code From Wsdl...&#xff0c; 选择OK&#xff0c;即可…

二、DMSP/OLS夜光数据校正之饱和校正

一、前言 首先需要将DMSP/OLS夜光数据下载,那么这里方便大家,可以直接私信我获得DMPS/OLS和NPP/VIIRS夜光原始数据,以百度云网盘形式分享给大家。 当把34期DMSP/OLS夜光数数据下载至电脑之后,解压后可以看到如下图的数据。 选择稳定平均灯光数据作为我们研究数据,也就是F…

MYSQL的事务原理

事务基础 事务概念 事务是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求&#xff0c;即这些操作要么同时成功&#xff0c;要么同时失败。 事务特性 原子性&#xff08;Atomicity&#xff09…