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

news2024/9/23 1:19:47

习题讲解:


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


条件语句练习:

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++) {
            // 检查是否包含数字7
            if (containsSeven(i)) {
                continue; // 跳过包含数字7的数字
            }
            // 打印当前数字
            System.out.println(i);
        }
    }

    // 辅助函数:检查一个数字是否包含数字7
    private 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.coloradmin.cn/o/986651.html

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

相关文章

电表采集器是如何接线的?

随着社会的进步和科技的发展&#xff0c;智能化和自动化已经成为了各个行业的发展趋势。在电力系统领域&#xff0c;电表采集器的应用越来越广泛&#xff0c;它实现了电能数据的远程采集、传输和分析&#xff0c;为电力系统的稳定运行提供了重要的数据支持。那么&#xff0c;电…

广东成人高考报名将于9月14日开始!

截图来自广东省教育考试院官网* 今年的广东成人高考正式报名时间终于确定了&#xff01; 报名时间&#xff1a;2023年 9 月14—20日 准考证打印时间&#xff1a;考前一周左右 考试时间&#xff1a;2023年10月21—22日 录取时间&#xff1a;2023年12 月中上旬 报名条件: …

恒运资本:存储市场有望触底反弹 电子竞技迎催化

昨日&#xff0c;沪指早盘震动下探&#xff0c;午后拉升翻红&#xff1b;深成指、创业板指跌幅收窄&#xff1b;到收盘&#xff0c;沪指涨0.12%报3158.08点&#xff0c;深成指跌0.24%报10515.21点&#xff0c;创业板指跌0.47%报2101.4点&#xff0c;科创50指数涨0.43%&#xff…

集成快递物流平台(快递100、快递鸟、闪送)连通多个应用

场景描述&#xff1a; 基于快递物流平台&#xff08;快递100、快递鸟、闪送等&#xff09;开放能力&#xff0c;无代码集成快递物流平台与多个应用互连互通。通过Aboter可搭建业务自动化流程&#xff0c;实现多个应用之间的数据连接。 连接器&#xff1a; 快递100快递鸟闪送…

容器编排学习(五)卷的概述与存储卷管理

一 卷 1 容器化带来的问题 容器中的文件在磁盘上是临时存放的&#xff0c;这给容器中运行的重要的应用程序带来一些问题 问题1&#xff1a;当容器崩溃或重启的时候&#xff0c;kubelet 会以干净的状态(镜像的状态)重启容器&#xff0c;容器内的历史数据会丢失 问题2&…

Mediasoup本地部署

一、环境 1、nodejs、npm、mac、ssh 注意:不能使用python3&#xff0c;请用自带的python 二、代码下载 1、mediasoup-demo 包含app(客户端)、server(服务端)、broadcasters(推流模块) git clone https://github.com/versatica/mediasoup-demo.git git checkout v3 2、me…

RC-u3 兰州拉面派餐系统--睿抗2023国赛

兰州拉面是著名美食&#xff0c;其煮面很有讲究&#xff0c;不同种类的面需要煮不同的时长。拉面馆的煮面师傅的规则很简单&#xff0c;只要手头有煮面篮子是空闲的&#xff0c;就把下一份客单指定的面放到空闲篮子里煮&#xff1b;如果空闲的篮子不止一个&#xff0c;那么先放…

无涯教程-JavaScript - BITLSHIFT函数

描述 BITLSHIFT函数返回一个左移指定位数的数字。 语法 BITLSHIFT (number, shift_amount)争论 Argument描述Required/OptionalnumberNumber must be an integer greater than or equal to 0.Requiredshift_amountShift_amount must be an integer.Required Notes 向左移动…

Zenlayer 软件定义网络平台赋能海底光缆服务

上海&#xff0c;2023年9月6日&#xff0c;一年一度的印尼电信国际大会——Batic在巴厘岛隆重举行。该盛会云集了亚太地区电信及相关行业的重要领导者&#xff0c;就“共塑亚太地区数字化未来”进行了深入探讨。Zenlayer作为该会议的黄金赞助商&#xff0c;宣布将在原有L2、L3网…

Science adv | 转录因子SPIC连接胚胎干细胞中的细胞代谢与表观调控

代谢是生化反应网络的结果&#xff0c;这些反应吸收营养物质并对其进行处理&#xff0c;以满足细胞的需求&#xff0c;包括能量产生和生物合成。反应的中间体被用作各种表观基因组修饰酶的底物和辅助因子&#xff0c;因此代谢与表观遗传密切相关。代谢结合表观遗传涉及疾病&…

【特殊文本文件——Properties和xml文件】

特殊文本文件 一、Properties 是一个Map集合&#xff08;键值对集合&#xff09;&#xff0c;但是我们一般不会当集合用核心作用&#xff1a;Properties是用来代表属性文件的&#xff0c;通过Properties可以读写属性文件里的内容 1.使用Properties读取属性文件里的键值对数据…

基于51单片机烟雾温度检测报警系统设计

一、系统方案 本设计采用52单片机作为主控器&#xff0c;液晶1602显示&#xff0c;DS18B20采集温度&#xff0c;MQ2采集烟雾值&#xff0c;火焰传感器&#xff0c;按键设置报警&#xff0c;声光报警。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系…

MS-TTS:免费微软TTS语音合成工具(一键合成导出MP3音频)

声明 本工具是个免费工具&#xff0c;遇到问题&#xff0c;还请自行解决&#xff0c;下面有文字教程&#xff0c;B站有视频教程&#xff08;链接在文章末尾&#xff09;&#xff1b; 其次&#xff0c;微软接口卡顿&#xff0c;连接超时等问题下方有详细说明&#xff0c;请仔细…

视频怎么制作动图?分享简单的视频制作gif方法

现在的人们常用视频来记录自己的生活&#xff0c;但是视频的体积都会比较大&#xff0c;保存传输非常的不方便。我们可以将视频制作成gif动图来使用&#xff0c;而且gif动图也能将自己的心情想表达的想法通过这种个性的方式展示给对方。接下来&#xff0c;就给大家分享一款视频…

雅思 四处刷题的记录(一)

目录 阅读 九分达人7 test2 p2 听力 剑18 test1 section 1 剑18 test1 section 2 《九分达人》6 test3 section 1 and section 2 阅读 《九分达人》7 test2 passage1 词汇 Travelling的含义 town跟介词在一起的搭配 什么情况下使用on 大作文写作思路 当我们要使…

Python自动化测试(超详细~)

1. 概述 1.1 python自动化 什么是python自动化&#xff1f;我理解的Python自动化测试就是把以前人为测试转化为机器测试的一种过程。自动化测试是一种比手工测试更快获得故障反馈的方法。 自动化测试是一种质量保障的方式&#xff0c;最重要的还是以做好一款高质量产品为前提…

商用柴油车J1939油耗管理及北斗TBOX在物流运输中的应用

随着电商的兴起&#xff0c;网上购物的用户越来越多&#xff0c;网购、直播带货、精品电商等&#xff0c;促进了大量的物品流动&#xff0c;原本在一定程度上&#xff0c;物流管理上还有一些小混乱&#xff0c;但是随着监管和政策调整&#xff0c;物流互联数字平台对于货物流动…

deepstream6.2部署yolov5详细教程与代码解读

文章目录 引言一.环境安装1、yolov5环境安装2、deepstream环境安装 二、源码文件说明三.wts与cfg生成1、获得wts与cfg2、修改wts 四.libnvdsinfer_custom_impl_Yolo.so库生成五.修改配置文件六.运行demo 引言 DeepStream 是使用开源 GStreamer 框架构建的优化图形架构&#xf…

SAP FI之批量修改财务凭证的BAPI

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 一般涉及修改财务凭证&#xff0c;或者其它凭证&#xff0c;不应直接更新数据库&#xff0c;而是使用系统提供的function module,或者BAPI&#xff0c;或者使用BDC。 一、 示例&#xf…

《Effective STL》读书笔记(四):迭代器

iterator 优先于 const_iterator, reverse_iterator, const_reverse_iterator STL中所有标准容器都提供了标题提到的四种迭代器类型。对于容器container<T>而言&#xff0c;iterator类型相当于T*&#xff0c;const_iterator类型相当于const T*&#xff0c;剩下两个是反向…