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

习题讲解:


上次我们给大家留了一些流程控制的问题,这次给大家分析讲解一下:


条件语句练习:

1.编写Java程序,用于接受用户输入的数字,然后判断它是偶数还是奇数,并输出相应的消息。

import java.util.Scanner;public class OddEvenCheck {public static void main(String[] args) {// 创建一个Scanner对象来接受用户输入Scanner scanner = new Scanner(System.in);// 提示用户输入一个整数System.out.print("请输入一个整数: ");// 从用户输入中读取整数int number = scanner.nextInt();// 使用条件语句判断数字是偶数还是奇数if (number % 2 == 0) {System.out.println(number + " 是偶数。");} else {System.out.println(number + " 是奇数。");}// 关闭Scanner对象scanner.close();}
}

分析讲解:

  1. 我们首先导入java.util.Scanner类,以便能够从用户输入中读取数据。

  2. 创建一个Scanner对象,这将帮助我们接受用户的输入。

  3. 使用System.out.print语句提示用户输入一个整数。

  4. 使用scanner.nextInt()从用户的输入中读取整数并将其存储在number变量中。

  5. 使用条件语句if来检查number是否是偶数。如果number除以2的余数等于0,那么它是偶数,否则是奇数。

  6. 根据判断结果,程序将输出相应的消息,告诉用户输入的数字是偶数还是奇数。

  7. 最后,我们使用scanner.close()来关闭Scanner对象,以释放资源。

例题总结:

这个程序演示了如何使用条件语句来判断用户输入的数字是偶数还是奇数。它首先接受用户输入,然后使用条件表达式检查输入的数字是否可以被2整除。如果可以,它被认为是偶数,否则被认为是奇数,并输出相应的消息。这个示例强调了Java中的条件语句的使用,是编程中的基础之一。

2.创建一个简单的登陆系统,要求用户输入用户名和密码。如果用户名是 “admin” 并且密码是 “password”,则显示欢迎消息,否则显示错误消息。

import java.util.Scanner;public class SimpleLoginSystem {public static void main(String[] args) {// 创建一个Scanner对象来接受用户输入Scanner scanner = new Scanner(System.in);// 提示用户输入用户名System.out.print("请输入用户名: ");String username = scanner.nextLine();// 提示用户输入密码System.out.print("请输入密码: ");String password = scanner.nextLine();// 验证用户名和密码if (username.equals("admin") && password.equals("password")) {System.out.println("欢迎 " + username + " 进入系统!");} else {System.out.println("用户名或密码错误,请重试。");}// 关闭Scanner对象scanner.close();}
}

分析讲解:

  1. 我们首先导入java.util.Scanner类,以便能够从用户输入中读取数据。

  2. 创建一个Scanner对象,这将帮助我们接受用户的输入。

  3. 使用System.out.print语句提示用户输入用户名。

  4. 使用scanner.nextLine()从用户的输入中读取用户名并将其存储在username变量中。

  5. 提示用户输入密码。

  6. 使用scanner.nextLine()从用户的输入中读取密码并将其存储在password变量中。

  7. 使用条件语句if来验证用户名和密码是否匹配。如果用户名是"admin"且密码是"password",则显示欢迎消息;否则,显示错误消息。

  8. 最后,我们使用scanner.close()来关闭Scanner对象,以释放资源。

例题总结:

这个程序演示了如何创建一个简单的登录系统,要求用户输入用户名和密码,并验证这些信息。它使用条件语句来检查用户名和密码是否匹配,如果匹配则显示欢迎消息,否则显示错误消息。这个示例强调了Java中的条件语句和用户输入的处理。在实际应用中,安全性需要更复杂的处理,但这个示例提供了一个基本的框架。

3.编写一个程序,接受用户输入的年份,然后判断该年份是否为闰年,并输出相应的消息。闰年条件:能被4整除但不能被100整除,或者能被400整除。

import java.util.Scanner;public class LeapYearCheck {public static void main(String[] args) {// 创建一个Scanner对象来接受用户输入Scanner scanner = new Scanner(System.in);// 提示用户输入一个年份System.out.print("请输入一个年份: ");int year = scanner.nextInt();// 使用条件语句判断是否为闰年if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {System.out.println(year + " 是闰年。");} else {System.out.println(year + " 不是闰年。");}// 关闭Scanner对象scanner.close();}
}

分析讲解:

  1. 我们首先导入java.util.Scanner类,以便能够从用户输入中读取数据。

  2. 创建一个Scanner对象,这将帮助我们接受用户的输入。

  3. 使用System.out.print语句提示用户输入一个年份。

  4. 使用scanner.nextInt()从用户的输入中读取年份并将其存储在year变量中。

  5. 使用条件语句if来判断年份是否为闰年。根据闰年的条件,我们检查两个条件:年份能够被4整除但不能被100整除,或者能够被400整除。如果两个条件中的任何一个满足,就认为是闰年。

  6. 根据判断结果,程序将输出相应的消息,告诉用户输入的年份是闰年还是不是闰年。

  7. 最后,我们使用scanner.close()来关闭Scanner对象,以释放资源。

例题总结:

这个程序演示了如何接受用户输入的年份,并使用条件语句来判断是否为闰年。它根据闰年的定义,检查了两个条件,以确定年份的闰年状态,并输出相应的消息。这个示例强调了Java中的条件语句的使用,是编程中的基础之一。

循环语句练习:

4.使用 for 循环打印出1到100的所有奇数。

public class PrintOddNumbers {public static void main(String[] args) {// 使用for循环遍历1到100的所有数字for (int i = 1; i <= 100; i++) {// 检查是否是奇数if (i % 2 != 0) {// 如果是奇数,就打印出来System.out.println(i);}}}
}

分析讲解:

  1. 我们使用 for 循环来遍历从1到100的所有数字,将 i 初始化为1,然后在每次迭代后增加1。

  2. 在循环的每一次迭代中,我们使用条件语句 if 来检查当前的数字 i 是否是奇数。

  3. 如果 i 不能被2整除(即 i % 2 != 0 为真),则它是奇数。

  4. 如果 i 是奇数,我们就使用 System.out.println(i); 打印出它。

例题总结:

这个程序将循环遍历1到100的数字,并只打印出奇数,即不被2整除的数字。这是一种常见的用法,用于筛选和处理特定类型的数字。

5.使用 while 循环找出一个正整数的所有因子

import java.util.Scanner;public class FactorsOfNumber {public static void main(String[] args) {// 创建一个Scanner对象来接受用户输入Scanner scanner = new Scanner(System.in);// 提示用户输入一个正整数System.out.print("请输入一个正整数: ");int number = scanner.nextInt();// 初始化一个除数int divisor = 1;// 使用while循环找出所有因子System.out.print(number + " 的因子包括: ");while (divisor <= number) {if (number % divisor == 0) {System.out.print(divisor + " ");}divisor++;}// 关闭Scanner对象scanner.close();}
}

分析讲解:

  1. 我们首先导入java.util.Scanner类,以便能够从用户输入中读取数据。

  2. 创建一个Scanner对象,这将帮助我们接受用户的输入。

  3. 使用System.out.print语句提示用户输入一个正整数。

  4. 使用scanner.nextInt()从用户的输入中读取正整数并将其存储在number变量中。

  5. 初始化一个除数 divisor,开始为1。

  6. 使用 while 循环来查找 number 的因子。在每次迭代中,我们检查是否 number 能够被 divisor 整除。如果能够整除,就说明 divisor 是一个因子,并将其打印出来。

  7. 在每次迭代后,我们增加 divisor 的值,继续查找下一个因子。

  8. 最后,我们使用scanner.close()来关闭Scanner对象,以释放资源。

例题总结:

这个程序将找出用户输入的正整数的所有因子,并将它们打印出来。这是一种查找因子的常见方法,可以用于数学和算法问题中。

6.使用 do...while 循环实现一个猜数字游戏,程序随机生成一个数字,然后提示用户猜数字,直到用户猜中为止

import java.util.Scanner;
import java.util.Random;public class GuessNumberGame {public static void main(String[] args) {// 创建一个Scanner对象来接受用户输入Scanner scanner = new Scanner(System.in);// 创建一个Random对象来生成随机数字Random random = new Random();// 生成随机数字(1到100之间)int target = random.nextInt(100) + 1;int attempts = 0; // 记录尝试次数int guess; // 用户猜的数字do {System.out.print("猜一个1到100之间的数字: ");guess = scanner.nextInt();attempts++;if (guess < target) {System.out.println("太小了,请再试一次。");} else if (guess > target) {System.out.println("太大了,请再试一次。");}} while (guess != target);System.out.println("恭喜,你猜对了!总共尝试了 " + attempts + " 次。");// 关闭Scanner对象scanner.close();}
}

分析讲解:

  1. 我们首先导入java.util.Scanner类和java.util.Random类,以便能够从用户输入中读取数据和生成随机数字。

  2. 创建一个Scanner对象,这将帮助我们接受用户的输入。

  3. 创建一个Random对象,用于生成随机的目标数字(在1到100之间)。

  4. 使用 do...while 循环来实现猜数字游戏,游戏会一直进行,直到用户猜中为止。

  5. 在每轮循环中,程序会提示用户输入猜测的数字,并将其存储在guess变量中。同时,attempts变量记录了用户的尝试次数。

  6. 程序会检查用户的猜测是否正确。如果猜测小于目标数字,就显示"太小了,请再试一次。“;如果猜测大于目标数字,就显示"太大了,请再试一次。”。

  7. 当用户猜中数字(guess == target)时,循环结束,并输出恭喜消息,显示用户猜中了,并告诉他们尝试的次数。

  8. 最后,我们使用scanner.close()来关闭Scanner对象,以释放资源。

例题总结:

这个程序实现了一个简单的猜数字游戏,用户可以尝试多次猜测,直到猜中目标数字为止。这种游戏可以用来练习do...while循环和条件语句的使用。

循环控制语句练习:

7.使用 break 语句改进上面的猜数字游戏,如果用户连续猜错5次,就自动结束游戏。

import java.util.Scanner;
import java.util.Random;public class ImprovedGuessNumberGame {public static void main(String[] args) {// 创建一个Scanner对象来接受用户输入Scanner scanner = new Scanner(System.in);// 创建一个Random对象来生成随机数字Random random = new Random();// 生成随机数字(1到100之间)int target = random.nextInt(100) + 1;int attempts = 0; // 记录尝试次数int guess; // 用户猜的数字while (true) {System.out.print("猜一个1到100之间的数字: ");guess = scanner.nextInt();attempts++;if (guess < target) {System.out.println("太小了,请再试一次。");} else if (guess > target) {System.out.println("太大了,请再试一次。");} else {System.out.println("恭喜,你猜对了!总共尝试了 " + attempts + " 次。");break; // 用户猜对,结束游戏}if (attempts >= 5) {System.out.println("你已经尝试了5次,游戏结束。");break; // 用户连续猜错5次,结束游戏}}// 关闭Scanner对象scanner.close();}
}

分析讲解:

  1. 这个程序与前一个猜数字游戏程序类似,但是使用了一个 while (true) 循环,以便在用户连续猜错5次后自动结束游戏。

  2. 在每轮循环中,程序会检查用户的猜测是否正确。如果猜测小于目标数字,就显示"太小了,请再试一次。“;如果猜测大于目标数字,就显示"太大了,请再试一次。”。

  3. 如果用户猜中数字(guess == target),程序会输出恭喜消息,并显示用户尝试的次数,然后使用 break 语句结束游戏循环。

  4. 如果用户连续猜错5次(attempts >= 5),程序会输出消息并使用 break 语句结束游戏循环,结束游戏。

例题总结:

这个程序允许用户猜数字,并在用户连续猜错5次后自动结束游戏。这种改进可以增加游戏的交互性和挑战性。

8.使用 continue 语句编写一个程序,打印出1到100的所有数字,但跳过所有包含数字 7 的数字,例如,跳过 7, 17, 27…

public class PrintNumbersSkipSeven {public static void main(String[] args) {// 使用for循环遍历1到100的所有数字for (int i = 1; i <= 100; i++) {// 检查是否包含数字7if (containsSeven(i)) {continue; // 跳过包含数字7的数字}// 打印当前数字System.out.println(i);}}// 辅助函数:检查一个数字是否包含数字7private static boolean containsSeven(int number) {while (number > 0) {int digit = number % 10;if (digit == 7) {return true; // 包含数字7}number /= 10;}return false; // 不包含数字7}
}

分析讲解:

  1. 这个程序使用 for 循环来遍历1到100的所有数字,将 i 初始化为1,然后在每次迭代后增加1。

  2. 在每轮循环中,程序使用 containsSeven(i) 函数来检查当前的数字 i 是否包含数字7。

  3. containsSeven 函数用于检查一个数字是否包含数字7。它通过反复取数字的个位数,然后将数字除以10来检查每一位是否为7。

  4. 如果 containsSeven(i) 返回 true,则使用 continue 语句跳过包含数字7的数字,继续下一个数字。

  5. 如果不包含数字7,就使用 System.out.println(i); 打印当前数字。

例题总结:

这个程序将打印出1到100的所有数字,但会跳过包含数字7的数字。这是一种在特定条件下跳过某些迭代的常见做法。

9.创建一个简单的菜单程序,让用户选择不同的选项(例如,1. 添加新项目,2. 查看项目,3. 退出程序)。使用 switch 语句处理用户的选择

import java.util.Scanner;public class SimpleMenu {public static void main(String[] args) {// 创建一个Scanner对象来接受用户输入Scanner scanner = new Scanner(System.in);int choice;do {// 显示菜单选项System.out.println("菜单:");System.out.println("1. 添加新项目");System.out.println("2. 查看项目");System.out.println("3. 退出程序");System.out.print("请选择选项(1/2/3): ");// 读取用户选择choice = scanner.nextInt();// 使用switch语句处理用户选择switch (choice) {case 1:System.out.println("选项1:添加新项目");// 在这里添加处理添加新项目的代码break;case 2:System.out.println("选项2:查看项目");// 在这里添加处理查看项目的代码break;case 3:System.out.println("选项3:退出程序");break;default:System.out.println("无效的选项,请重新选择。");}} while (choice != 3); // 当用户选择退出时结束循环// 关闭Scanner对象scanner.close();}
}

分析讲解:

  1. 我们首先导入java.util.Scanner类,以便能够从用户输入中读取数据。

  2. 创建一个Scanner对象,这将帮助我们接受用户的输入。

  3. 使用 do...while 循环来实现菜单程序,循环将一直运行,直到用户选择退出。

  4. 在每轮循环中,程序显示菜单选项,提示用户选择。

  5. 使用scanner.nextInt()读取用户的选择并存储在choice变量中。

  6. 使用switch语句处理用户的选择。根据不同的选项,你可以在相应的case分支中添加处理代码。

  7. 如果用户选择退出(choice == 3),循环结束,程序退出。

例题总结:

这个程序演示了如何创建一个简单的菜单系统,允许用户选择不同的选项,并使用`switch`语句来处理这些选项。你可以根据需要扩展每个选项的功能。

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

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

相关文章

记录使用layui弹窗实现签名、签字

一、前言 本来项目使用的是OCX方式做签字的&#xff0c;因为项目需要转到国产化&#xff0c;不在支持OCX方式&#xff0c;需要使用前端进行签字操作 注&#xff1a;有啥问题看看文档&#xff0c;或者换着思路来&#xff0c;本文仅供参考&#xff01; 二、使用组件 获取jSign…

九章云极DataCanvas公司参与大模型重点项目合作签约,建设产业集聚区

9月3日&#xff0c;2023中国国际服务贸易交易会石景山国际开放合作论坛在石景山首钢园成功举办&#xff0c;北京市委常委、常务副市长夏林茂&#xff0c;商务部服务贸易和商贸服务业司司长王东堂&#xff0c;北京市石景山区委书记常卫出席论坛并致辞。论坛期间正式举行“石景山…

java8 新特性

1、lambda表达式 Lambda 是一个 匿名函数&#xff0c;我们可以把 Lambda 表达式理解为是 一段可以传递的代码&#xff08;将代码像数据一样进行传递&#xff09;。使用它可以写出更简洁、更灵活的代码。 &#xff08;1&#xff09;语法 Lambda 表达式&#xff1a;在Java 8 语…

STM32WB55开发(1)----套件概述

STM32WB55开发----1.套件概述 所用器件视频教学样品申请优势支持协议系统控制和生态系统访问功能示意图系统框图跳线设置开发板原理图 所用器件 所使用的器件是我们自行设计的开发板&#xff0c;该开发板是基于 STM32WB55 系列微控制器所构建。STM32WBXX_VFQFPN68 不仅是一款评…

【MyBatis篇】MyBatis框架基础知识笔记

目录 ORM思想&#xff08;对象关系映射思想&#xff09; 初识MyBatis 什么是MyBatis呢&#xff1f; JDBC VS MyBatis代码 获取数据库连接对比 对表格查询操作&#xff1a; JDBC弊端 MyBatis&#xff0c;JDBC对比 MyBatis进一步介绍以及本质分析 JDBC编程的劣势&…

VectorDraw Developer Framework 10.1004 Crack

VectorDraw 开发人员框架 (VDF) 是一个图形引擎库&#xff0c;开发人员可以使用它来可视化其应用程序。通过提供的功能&#xff0c;我们的客户可以轻松创建、编辑、管理、导出、导入和打印 2D 和 3D 绘图 - 图形文件。VDF 使用的强大格式称为 VDML&#xff08;以及与 VDML 相同…

ssprompt:一个LLM Prompt分发管理工具

阅读顺序 &#x1f31f;前言&#x1f514;ssprompt介绍命令介绍Metafile介绍版本依赖规则 &#x1f30a; PromptHubGitHub Token &#x1f680; Quick Install系统依赖pip安装Linux, macOS, Windows (WSL)Windows (Powershell) &#x1f6a9; Roadmap&#x1f30f; 项目交流讨论…

12.redis 持久化

redis 持久化 redis 持久化redis持久化策略RDB > Redis DataBase 定期备份rdb 文件处理rdb 优缺点 AOF > Append Only File 实时备份AOF 工作流程AOF 缓冲区刷新策略AOF 重写机制AOF 重写流程 混合持久化持久化流程总结 redis 持久化 redis 是一个内存数据库&#xff0c…

【大数据模型】让chatgpt为开发增速(开发专用提示词)

汝之观览&#xff0c;吾之幸也&#xff01;本文主要聊聊怎样才能更好的使用提示词&#xff0c;给开发提速&#xff0c;大大缩减我们的开发时间&#xff0c;比如在开发中使用生成表结构脚本的提示词&#xff0c;生成代码的提示词等等。 一、准备 本文主要根据Claude进行演示&am…

【产线故障】线上接口请求过慢如何排查?

文章目录 前言一、内存使用过高导致CPU满载案例代码分析思路 二、出现了类似死循环导致cpu负载案例代码分析思路 三、死锁案例代码分析思路 前言 首先线上接口变慢&#xff0c;原因可能有很多&#xff0c;有可能是网络&#xff0c;有可能是慢 SQL&#xff0c;有可能是服务本身…

【Linux】- 一文秒懂shell编程

shell编程 1.1 Shell 是什么1.2 Shell 脚本的执行方式1.3 编写第一个 Shell 脚本2.1 Shell 的变量2.2 shell 变量的定义2.3 设置环境变量3.1 位置参数变量3.2 预定义变量4.1 运算符4.2 条件判断5.1 流程控制5.2 case 语句5.3 for 循环5.4 while 循环5.5 read基本语法6.1函数6.2…

Nginx 本地部署服务

nginx 部署服务 一、下载二、解压三、文件替换四、浏览器中输入五、离线部署瓦片服务 一、下载 可以到官网下载&#xff0c;官方网址&#xff1a;https://nginx.org/也可以用我发的包 二、解压 三、文件替换 解压打开后文件&#xff0c;双击 nginx.exe 浏览器输入 localhost…

springboot之一:配置文件(内外部配置优先顺序+properties、xml、yaml基础语法+profile动态切换配置、激活方式)

配置的概念&#xff1a; Spring Boot是基于约定的&#xff0c;所以很多配置都有默认值&#xff0c;但如果想使用自己的配置替换默认配置的话&#xff0c;就可以使用application.properties或者application.yml(application.yaml)进行配置。 注意配置文件的命名必须是applicat…

【LeetCode每日一题合集】2023.8.28-2023.9.3(到家的最少跳跃次数)

文章目录 57. 插入区间823. 带因子的二叉树解法——递推 1654. 到家的最少跳跃次数(BFS&#xff0c;&#x1f6b9;最远距离上界的证明)1761. 一个图中连通三元组的最小度数2240. 买钢笔和铅笔的方案数解法1——完全背包解法2——枚举买了几支钢笔&#xff08;推荐解法&#xff…

LGFormer:LOCAL TO GLOBAL TRANSFORMER FOR VIDEO BASED 3D HUMAN POSE ESTIMATION

基于视频的三维人体姿态估计的局部到全局Transformer 作者&#xff1a;马海峰 *&#xff0c;陆克 * †&#xff0c;薛健 *&#xff0c;牛泽海 *&#xff0c;高鹏程† * 中国科学院大学工程学院&#xff0c;北京100049 鹏程实验室&#xff0c;深圳518055 来源&#xff1a;202…

这可能是最全面的Python入门手册了!

无论是学习任何一门语言&#xff0c;基础知识一定要扎实&#xff0c;基础功非常的重要&#xff0c;找到一个合适的学习方法和资料会让你少走很多弯路&#xff0c; 你的进步速度也会快很多&#xff0c;无论我们学习的目的是什么&#xff0c;不得不说Python真的是一门值得付出时间…

代码泄漏无感知?代码安全审计构筑企业核心资产安全防线

目录 一个不眠之夜 源代码托管&#xff1a;最容易被从内部攻破的堡垒 审计事件&#xff0c;构建源代码安全防护的“最后一道防线” 源代码托管审计事件三要素 源代码托管审计事件的价值 极狐GitLab 审计事件功能 极狐GitLab 审计事件功能特点 极狐GitLab 审计事件功能使…

Support for password authentication was removed on August 13, 2021 解决方案

打开你的github&#xff0c;Setting 点击Developer settings。 点击generate new token 按照需要选择scope 生成token&#xff0c;以后复制下来。 给git设置token样式的remote url git remote set-url origin https://你的tokengithub.com/你的git用户名/仓库名称.git然后就可…

Docker 搭建Redis 集群之路

前言 搞技术就是动手&#xff0c;动手再动手&#xff0c;实践出真知&#xff0c;毕竟最终是要解决问题的呢&#xff0c;废话不多讲&#xff0c;开搞&#xff0c;主要是为了记录一下&#xff0c;毕竟过程还是有点艰辛呢需求&#xff08;target&#xff09; Windows 电脑 装一个…

python 笔记(1)——基础和常用部分

目录 1、print 输出不换行 2、格式化输出字符串 3、浮点数的处理 4、进制转换和ASCII与字符间的转换 5、随机数 6、字符串截取和内置方法 6-1&#xff09;字符串截取 6-2&#xff09;字符串内置方法 7、元组、列表&#xff0c;及其遍历方式 7-1&#xff09;列表常用内…