Java从入门到精通-流程控制(一)

流程控制

67554e981998408b97542efb9836baba.png
1.复合语句

复合语句,也称为代码块,是一组Java语句,用大括号 {} 括起来,它们可以被视为单个语句。复合语句通常用于以下情况:

- 在控制结构(如条件语句和循环)中包含多个语句。

- 在方法中定义局部变量的作用域。

示例1:

public class IfStatementExample {
    public static void main(String[] args) {
        int number = 5;
        if (number > 0) {
            System.out.println("这个数是正数");
        }
        // 如果条件为假,代码块将被跳过
        if (number < 0) {
            System.out.println("这个数是负数");
        }
    }
}

在示例1中,我们使用了一个复合语句来计算 z 的值,并在复合语句内部打印它。需要注意的是,z 变量的作用域仅限于复合语句内部,在复合语句外部无法访问。复合语句是组织代码并控制变量作用域的重要工具,你将在编写Java程序时经常遇到它们。

2.条件语句


条件语句是Java编程中的关键元素之一,它允许根据不同的条件执行不同的代码块。在这一部分,我们将探讨两种常见的条件语句:if 条件语句和 switch 多分支语句。

2.1 if条件语句

if 条件语句允许你根据一个条件来执行代码块。如果条件为真,代码块将被执行;如果条件为假,代码块将被跳过。

public class IfStatementExample {
    public static void main(String[] args) {
        int number = 5;
        if (number > 0) {
            System.out.println("这个数是正数");
        }
        // 如果条件为假,代码块将被跳过
        if (number < 0) {
            System.out.println("这个数是负数");
        }
    }
}

在示例2中,我们首先检查 number 是否大于0,如果是,则打印 "这个数是正数"。然后,我们检查 number 是否小于0,但由于条件不满足,第二个 if 代码块被跳过。

除了基本的 `if` 语句,还可以使用 `else` 和 `else if` 来处理多个条件。

示例3:判断数字正、负:

public class ElseIfStatementExample {
    public static void main(String[] args) {
        int number = 0;
        if (number > 0) {
            System.out.println("这个数是正数");
        } else if (number < 0) {
            System.out.println("这个数是负数");
        } else {
            System.out.println("这个数是零");
        }
    }
}

在示例3中,我们首先检查 number 是否大于0,如果是,打印 "这个数是正数"。如果不是,然后检查是否小于0,如果是,打印 "这个数是负数"。如果两个条件都不满足,就执行 else 代码块。

2.2 switch多分支语句

`switch` 语句是一种多分支条件语句,用于根据表达式的值执行不同的代码块。它通常用于处理多个可能的情况。

示例4:根据星期几打印不同的消息:

public class SwitchStatementExample {
    public static void main(String[] args) {
        int dayOfWeek = 3;
        switch (dayOfWeek) {
            case 1:
                System.out.println("星期一");
                break;
            case 2:
                System.out.println("星期二");
                break;
            case 3:
                System.out.println("星期三");
                break;
            case 4:
                System.out.println("星期四");
                break;
            case 5:
                System.out.println("星期五");
                break;
            default:
                System.out.println("周末");
        }
    }
}

在示例4中,我们根据 dayOfWeek 的值执行不同的代码块。使用 break 关键字来结束每个 case 分支,以防止继续执行后续分支。如果没有匹配的分支,将执行 default 代码块。

这就是条件语句的基本概念。它们能够根据不同的条件来控制程序的执行流程。接下来,我们将讨论循环语句。

3.循环语句

循环语句是控制程序重复执行一段代码的关键工具。在Java中,有三种主要的循环语句:while 循环,do...while 循环,和 for 循环。我将逐一介绍它们。

3.1 while循环语句

`while` 循环允许你在条件为真的情况下重复执行一段代码块。它在进入循环之前检查条件。

示例5:使用 while 循环计算1到10的和:

public class WhileLoopExample {
    public static void main(String[] args) {
        int sum = 0;
        int i = 1;
        while (i <= 10) {
            sum += i;
            i++;
        }
        System.out.println("1到10的和为:" + sum);
    }
}


在示例5中,我们初始化 sum 为0,然后使用 while 循环从1加到10。i 用于跟踪当前的数字,每次迭代后增加1。

3.2 do...while循环语句

do...while 循环与 while 循环类似,但它首先执行代码块,然后再检查条件。这意味着无论条件是否为真,代码块至少会执行一次。

示例6:使用 do...while 循环验证用户输入的密码:

import java.util.Scanner;
public class DoWhileLoopExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String password;
        
        do {
            System.out.print("请输入密码:");
            password = scanner.nextLine();
        } while (!password.equals("12345"));
        
        System.out.println("密码正确,欢迎进入系统!");
        scanner.close();
    }
}

在示例6中,无论用户输入的密码是否正确,至少会要求用户输入一次密码。

3.3 for循环语句

for 循环是一种灵活的循环,通常用于已知循环次数的情况。它包括初始化、条件和迭代部分。

示例7:使用 `for` 循环输出1到5的数字:

public class ForLoopExample {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            System.out.println(i);
        }
    }
}

在示例7中,使用 for 循环初始化 i 为1,然后在每次迭代后增加1。循环在 i 大于5之前执行。

这些是Java中的常见循环语句。它们允许你有效地重复执行代码块,以完成各种任务。接下来,我们将探讨循环控制语句,包括 break 和 continue。

4.循环控制

循环控制语句允许你更灵活地管理循环的执行流程。在这一部分,我们将介绍两个关键的循环控制语句:break 和 continue。

4.1 break语句

break 语句用于中断循环的执行,无论循环条件是否满足。通常,break 用于在满足某个条件时立即退出循环。

示例8:使用 `break` 来在找到目标值时中断循环:

public class BreakStatementExample {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};
        int target = 3;
        for (int num : numbers) {
            if (num == target) {
                System.out.println("找到目标值:" + num);
                break; // 中断循环
            }
        }
    }
}

在示例8中,我们使用 for 循环遍历一个整数数组,当找到目标值 target 时,使用 break 来中断循环,以避免继续迭代。

4.2 continue语句

continue 语句用于跳过当前循环迭代的剩余代码,然后继续下一次迭代。它通常用于处理特定条件下的情况,而不是完全退出循环。

示例9:使用 `continue` 在遇到偶数时跳过输出:

public class ContinueStatementExample {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            if (i % 2 == 0) {
                continue; // 跳过偶数
            }
            System.out.println(i);
        }
    }
}

在示例9中,当 i 为偶数时,continue 语句将跳过 System.out.println(i); 的执行,然后继续下一次迭代。

break 和 continue 是在循环中控制执行流程的有用工具。它们可以帮助你根据不同的条件中断循环或跳过特定迭代。

5.小结一下

  1. 复合语句是由一组Java语句组成的代码块,通常用大括号 {} 括起来。它们可以用于组织多个语句,也用于限定局部变量的作用域。
  2. 条件语句是用于根据不同条件执行不同代码块的工具。我们介绍了 if 条件语句和 switch 多分支语句。if 允许根据条件执行不同的代码块,而 switch 用于多个可能情况的情况下执行不同的代码块。
  3. 循环语句允许你重复执行一段代码块。我们介绍了 while 循环,do...while 循环和 for 循环。这些循环结构适用于不同的情况,允许你有效地处理已知或未知次数的迭代。
  4. 循环控制语句包括 break 和 continue。break 用于中断循环的执行,而 continue 用于跳过当前迭代的剩余代码。

6.实践练习


条件语句练习:

  • 编写一个程序,接受用户输入的数字,然后判断它是否是偶数或奇数,并输出相应的消息。
  • 创建一个简单的登陆系统,要求用户输入用户名和密码。如果用户名是 "admin" 并且密码是 "password",则显示欢迎消息,否则显示错误消息。
  • 编写一个程序,接受用户输入的年份,然后判断该年份是否为闰年,并输出相应的消息。闰年条件:能被4整除但不能被100整除,或者能被400整除。


循环语句练习:

  • 使用 for 循环打印出1到100的所有奇数。
  • 使用 while 循环找出一个正整数的所有因子。
  • 使用 do...while 循环实现一个猜数字游戏,程序随机生成一个数字,然后提示用户猜数字,直到用户猜中为止。


循环控制语句练习:

  • 使用 break 语句改进上面的猜数字游戏,如果用户连续猜错5次,就自动结束游戏。
  • 使用 continue 语句编写一个程序,打印出1到100的所有数字,但跳过所有包含数字 7 的数字,例如,跳过 7, 17, 27...
  • 创建一个简单的菜单程序,让用户选择不同的选项(例如,1. 添加新项目,2. 查看项目,3. 退出程序)。使用 switch 语句处理用户的选择。

(以上是九个小问题,下次文章回答)
 

 

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

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

相关文章

肖sir__linux详解__002(系统命令)

linux系统命令 1、df 查看磁盘使用情况 &#xff08;1&#xff09;df 查看磁盘使用情况&#xff08;按kb单位显示&#xff09; &#xff08;2&#xff09;df -h 按单位显示磁盘使用情况 2、top 实时查看动态进程 &#xff08;1&#xff09;top 详解&#xff1a; 第一行&…

Python网络编程详解

概要 Python作为一种强大的编程语言&#xff0c;拥有丰富的网络编程库和框架&#xff0c;能够方便地进行各种网络编程任务。本文将介绍Python网络编程的基础知识&#xff0c;包括socket编程和HTTP协议&#xff0c;然后深入探讨一些流行的Python Web框架&#xff0c;包括Flask和…

Android JNI系列详解之ndk编译工具环境变量配置

一、前提 之前是只介绍了CMake编译工具的使用&#xff0c;现在介绍另一种原生&#xff08;NDK自带的脚本工具&#xff09;自带的编译方式&#xff1a;ndk-build&#xff0c;想要使用ndk-build编译工程&#xff0c;我们需要配置全局的环境变量。 二、配置环境变量 找到ndk在电脑…

2023腾讯全球数字生态大会预约报名入口

报名入口 2023腾讯全球数字生态大会即将开启&#xff0c;点击打开预约报名入口。 主题与介绍 主题 2023腾讯全球数字生态大会将聚焦产业未来发展新趋势&#xff0c;针对云计算、大数据、人工智能、安全、SaaS等核心数字化工具做关键进展发布&#xff0c;并联合生态伙伴推出最…

合宙Air724UG LuatOS-Air LVGL API控件--日历 (Calendar)

日历 (Calendar) LVGL 提供了一个用来选择和显示当前日期的日历控件。 示例代码 – 高亮显示的日期 highlightDate lvgl.calendar_date_t() – 日历点击的回调函数 – 将点击日期设置高亮 function event_handler(obj, event) if event lvgl.EVENT_VALUE_CHANGED then da…

WIFI与BT的PCB布局布线注意事项

1、模块整体布局时&#xff0c;WIFI模组要尽量远离DDR、HDMI、USB、LCD电路以及喇叭等易干扰模块或连接座&#xff1b; 2、晶体电路布局需要优先考虑&#xff0c;布局时应与芯片在同一层并尽量靠近放置以避免打过孔&#xff0c;晶体走线尽可能的短&#xff0c;远离干扰源&…

C# 跨线程访问窗体控件

在不加任何修饰的情况下&#xff0c;C# 默认不允许跨线程访问控件&#xff0c;实际在项目开发过程中&#xff0c;经常使用跨线程操作控件属性&#xff0c;需要设置相关属性才能正确使用&#xff0c;两种方法设置如下&#xff1a; 方法1&#xff1a;告诉编译器取消跨线程访问检…

视频汇聚/视频云存储/视频监控管理平台EasyCVR视频平台添加萤火云设备的具体操作步骤

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

CData Drivers for SAS xpt Crack

CData Drivers for SAS xpt Crack 使用基于标准的驱动程序&#xff0c;加入数据库、报告工具和自定义程序中的实时SAS xpt(XPORT)数据文件。 与BI分析、报告、ETL工具和自定义解决方案集成。 适用于SAS xpt的CData驱动程序。神奇的功能&#xff1a; BI和分析 我们的驱动程序是将…

电子科大软件系统架构设计——系统分析与设计概述(含课堂作业、练习答案)

系统分析与设计概述 信息系统概述 what 信息系统是一种能够完成对业务数据进行采集、转换、加工、计算、分析、传输、维护等信息处理&#xff0c;并能就某个方面问题给用户提供信息服务的计算机应用系统。 组成 信息化基础设施&#xff08;计算机、计算机网络、服务器、系统…

零信任安全模型详解:探讨零信任安全策略的原理、实施方法和最佳实践,确保在网络中实现最小特权原则

在当今日益复杂和危险的网络环境中&#xff0c;传统的网络安全模型已经不再能够满足对抗不断进化的威胁。零信任安全模型应运而生&#xff0c;以其强调“不信任&#xff0c;始终验证”的理念&#xff0c;成为了当今信息技术领域中的热门话题。本文将深入探讨零信任安全模型&…

JVM内存模型介绍

java内存中变量的存储位置 局部变量&#xff1a;方法中的局部变量存在于栈内存。每当程序调用一个方法时&#xff0c;系统都会为该方法建立一个方法栈&#xff0c;所在方法中声明的变量就放在方法栈中&#xff0c;方法结束系统会销毁该方法栈&#xff0c;在该方法中声明的变量随…

基础知识回顾:借助 SSL/TLS 和 NGINX 进行 Web 流量加密

原文作者&#xff1a; Robert Haynes 原文链接&#xff1a; 基础知识回顾&#xff1a;借助 SSL/TLS 和 NGINX 进行 Web 流量加密 NGINX 唯一中文官方社区 &#xff0c;尽在 nginx.org.cn 网络攻击者肆无忌惮、作恶多端&#xff0c;几乎每天都有网络入侵、数据窃取或勒索软件攻击…

华为eNSP模拟器中,路由器如何添加serial接口

在ensp模拟器中新建拓扑后&#xff0c;添加2个路由器。 在路由器图标上单击鼠标右键&#xff0c;选择设置选项。 在【视图】选项卡的【eNSP支持的接口卡】窗口查找serial接口卡。 选择2SA接口卡&#xff0c;将其拖动到路由器空置的卡槽位。 如上图所示&#xff0c;已经完成路由…

【LeetCode题目详解】第八章 贪心算法 part05 435. 无重叠区间 763.划分字母区间 56. 合并区间 (day36补)

本文章代码以c为例&#xff01; 一、力扣第435题&#xff1a;无重叠区间 题目&#xff1a; 给定一个区间的集合 intervals &#xff0c;其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量&#xff0c;使剩余区间互不重叠 。 示例 1: 输入: intervals [[1,…

Python爬虫乱码问题之encoding和apparent_encoding的区别

encoding是从http中的header中的charset字段中提取的编码方式&#xff0c;若header中没有charset字段则默认为ISO-8859-1编码模式&#xff0c;则无法解析中文&#xff0c;这是乱码的原因 apparent_encoding会从网页的内容中分析网页编码的方式&#xff0c;所以apparent_encodi…

学生信息管理系统MIS(前端)

改造HTML文件 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>学生信息管理系统MIS</title><!-- link在HTML文件中,引入外部的css文件 rel的值是固定写法,stylesheet样式表href用来指定样式表的位置--><lin…

关于C语言参数传递的

一、C语言参数传递是整体带入 #include <stdio.h> #define DF(a,b) (a2*b) int main() { int s5; int k DF((s1),(s-3)); printf("%d",k); }输出结果 原因&#xff1a; #define DF(a,b) (a2*b) int k DF((s1),(s-3)); //等效 int k DF((s1)2 * (s-3)); …

计算机网络-笔记-第三章-数据链路层

&#x1f338;章节汇总 一、第一章——计算机网络概述 二、第二章——物理层 三、第三章——数据链路层 四、第四章——网络层 五、第五章——运输层 六、第六章——应用层 目录 三、第三章——数据链路层 1、数据链路层概述&#xff08;帧&#xff09; &#xff08;1&…

【docker】容器的运行、停止、查看等基本操作

容器与镜像的区别 image镜像 Docker image是一个read-only文件&#xff0c;位于磁盘上这个文件包含文件系统&#xff0c;源码&#xff0c;库文件&#xff0c;依赖&#xff0c;工具等一些运行application所需要的文件可以理解成一个模板docker image具有分层的概念 container…