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…

Java对象内存布局和对象头

文章目录 Java对象内存布局和对象头对象内存布局对象头Mark Word实例数据对齐填充对象头和性能总结Java对象内存布局和对象头 在Java中,对象是一个类的实例化,也就是说,一个对象包含其类的属性和方法。当我们实例化一个对象时,JVM会在Heap中为其分配一块连续的内存空间。这…

九章云极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; 项目交流讨论…

Winodws10测试驱动禁用签名

以管理员权限打开CMD输入如下命令&#xff1a; bcdedit /set nointegritychecks on bcdedit /set testsigning on bcdedit /set loadoptions DDISABLE_INTEGRITY_CHECKS 然后就可以不用注册签名来测试自己写的驱动了。

好用免费的Chat GPT

MindLink麦灵 你问我答 灵感 持续更新中。。。。

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…

Ubuntu/linux系统环境变量配置详解

一 环境变量配置文件解释 /etc/profile 在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。 /etc /environment 在登录时操作系统使用的第二个文件, 系统在读取你自己的profile前,设置环境文件的环境变…

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…

【ts】Partial<T>

Partial是ts中的一个内置类型&#xff0c;它用于定义对象类型的部分属性&#xff0c;当使用Partial<T>来定义一个类型T的部分类型时&#xff0c;它会将T中的属性变为可选属性&#xff08;即既可以有值又可以没值&#xff09;&#xff0c;这样就可以只提供T的一部分属性&a…

一分钟教你学会浏览器调试工具debugger

当使用谷歌浏览器或者vscode进行前端调试时&#xff0c;可以使用以下方法进行详细调试&#xff1a; 谷歌浏览器&#xff1a; 打开谷歌浏览器&#xff0c;并在地址栏中输入要调试的页面的 URL 地址。 按下 Ctrl Shift I&#xff08;Windows/Linux&#xff09;或 Command Opt…