Java入门基础学习笔记22——程序流程控制

news2024/11/22 9:35:52

程序流程控制:控制程序的执行顺序。

程序有哪些执行顺序?

顺序、分支和循环。

分支结构:

if、switch

循环:

for、while、do-while

顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。

if分支:

根据条件(真和假)来决定执行某段代码。

说明:单分支、双分支、多分支。

package cn.ensource.branch;

import java.util.Scanner;

public class IfDemo1 {
    public static void main(String[] args) {
        // 目标:需要同学们掌握If分支的三种形式的用法和执行流程
        // 需求:测量用户体温、发现体温高于37度就报警
        double t = 38.9;
        if (t > 37) {
            System.out.println("这个人温度异常!");
        }

        // 需求:发红包、你的钱包余额是99元,现在要发出90元。
        // 如果钱够,触发发红包的动作,如果钱不够,则提示余额不足:
        double money = 99;
        if (money >= 90) {
            System.out.println("发红包成功了!");
        }else {
            System.out.println("余额不足!");
        }

        // 需求3: 某个公司有一个绩效系统,根据员工的打分输出对应的绩效级别。
        // [0-60] D [60-80] C [80-90] B [90-100] A
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入员工积分:");
        int score = sc.nextInt();

        if (score >= 0 && score < 60) {
            System.out.println("D");
        }else if(score >= 60 && score < 80) {
            System.out.println("C");
        }else if(score >= 80 && score < 90) {
            System.out.println("B");
        }else if(score >= 90 && score <= 100) {
            System.out.println("A");
        }else {
            System.out.println("您输入的积分有问题!");
        }
    }
}

如果if语句的{}中只有一行代码的情况,{}可以省略不写(但不推荐省略)。

import java.util.Scanner;


public class Main {

    public static void main(String[] args) {
        System.out.println("start");

        Scanner sc = new Scanner(System.in);
        System.out.println("Please input a number(1-7):");

        int week = sc.nextInt();

        if(week == 1) {
            System.out.println("Monday");
        } else if(week == 2) {
            System.out.println("Tuesday");
        } else if(week == 3) {
            System.out.println("Wednesday");
        } else if(week == 4) {
            System.out.println("Thursday");
        } else if(week == 5) {
            System.out.println("Friday");
        } else if (week == 6) {
            System.out.println("Saturday");
        } else {
            System.out.println("Sunday");
        }

        System.out.println("End");
    }
}

switch分支:

是通过比较值来决定执行哪条分支。

switch分支的执行流程:

1)先执行表达式的值,再拿着这个值去与case后的值进行匹配;

2)与哪个case后面的值匹配值为true,就执行哪个case块的代码,遇到break,就跳出switch分支。

3)如果全部case后的值与之匹配都是false,则执行default块的代码。

案例:

package cn.ensource.branch;

import java.util.Scanner;

public class SwitchDemo2 {
    public static void main(String[] args) {
        //switch语句
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入星期信息(示例:周一):");
        String week = sc.nextLine();

        switch (week) {
            case "周一":
                System.out.println("埋头苦干,解决bug。");
                break;
            case "周二":
                System.out.println("请大牛程序员帮忙。");
                break;
            case "周三":
                System.out.println("今晚啤酒、龙虾、小烧烤。");
                break;
            case "周四":
                System.out.println("主动帮助新来的女程序员解决bug。");
                break;
            case "周五":
                System.out.println("今晚吃鸡。");
                break;
            case "周六":
                System.out.println("与王婆介绍的小芳相亲。");
                break;
            case "周日":
                System.out.println("郁郁寡欢,准备上班。");
                break;
            default:
                System.out.println("您输入的星期信息不对!");
        }
    }
}

if、switch的比较,以及各自适合的应用场景?

if语句功能上远远强于switch。swith语句能搞定的事情,if都可以搞定。

如果当前的条件是区间的话,应该使用if分支结构。

当条件是与一个一个值比较的时候,switch分支是更合适的,格式良好、性能更好、代码优雅。

快速定位某个语句。

switch语句使用时的注意事项:

1)表达式类型只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持String、不支持Double、float、long。

long的值很大,分支很大,就没有意义了。

double类型在运算的时候,可能是不精确的。底层的运算机制。

2)case给出的值不允许重复,且只能是字面量,不能是变量。

3)正常使用switch语句的时候,不要忘记写break,否则会出现穿透现象。

忘记写break语句,程序继续往下执行。

Switch穿透性在某些情况下可以简化代码。

当存在多个case分支的代码相同的时候,可以把相同的代码放到一个case块中,其他的case块都通过穿透性透到该case执行代码即可,这样可以简化代码。

这样,很明显,代码简化了。

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

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

相关文章

01-02-5

1、单链表中按位置查找 a.原理 通过传递的位置&#xff0c;返回该位置对应的地址&#xff0c;放到主函数定义的指针变量中。 我们认为位置从&#xff1a;有数据的节点开始计数 即如下结构&#xff1a; 查找位置&#xff0c;就是返回该位置对应的空间地址。 b.代码说明 Ⅰ…

深度剖析深度神经网络(DNN):原理、实现与应用

目录 引言 一、DNN基本原理 二、DNN核心算法原理 三、DNN具体操作步骤 四、代码演示 引言 在人工智能和机器学习的浪潮中&#xff0c;深度神经网络&#xff08;Deep Neural Network&#xff0c;简称DNN&#xff09;已经成为了一种非常重要的工具。DNN模仿人脑神经网络的结…

2023年数维杯国际大学生数学建模挑战赛A题复合直升机的建模与优化控制问题解题全过程论文及程序

2023年数维杯国际大学生数学建模挑战赛 A题 复合直升机的建模与优化控制问题 原题再现&#xff1a; 直升机具有垂直起降等飞行能力&#xff0c;广泛应用于侦察、运输等领域。传统直升机的配置导致旋翼叶片在高速飞行过程中受到冲击波的影响&#xff0c;难以稳定飞行。为了在保…

【轮转数组】力扣python

1.python切片 这里nums[:]代表列表 class Solution:def rotate(self, nums: List[int], k: int) -> None:nlen(nums)nums[:]nums[-k%n:]nums[:-k%n] 2.边pop边push 0代表插入的位置 class Solution:def rotate(self, nums: List[int], k: int) -> None:nlen(nums)fo…

[Linux] 入门指令详解

目录 ls指令 pwd指令 whoami指令 cd指令 clear指令 touch指令 mkdir指令 rmdir指令 rm指令 man指令 cp指令 mv指令 cat指令 tac指令 more指令 less指令 head指令 tail指令 如何读取文件中间某一段内容&#xff1f; date指令 cal指令 find指令 which指令…

Java Web开篇

Java Web开篇 大纲 整个内容梳理 具体案例 整个内容梳理 这是前端和后端组成的系统的框架结构

自动攻丝机进出料激光检测 进料出料失败报警循环手动及关闭报警退出无限循环

/**************进料检测********************/ /***缺料无限次循环 手动退出 超时报警*******/ void check_Pon() // { zstatus0; //报警计数器归零 Signauto1; …

使用Pyramid、Mako和PyJade生成 HTML

Pyramid 是一个流行的 Python Web 框架&#xff0c;而 Mako 和 PyJade 是用于模板引擎的工具&#xff0c;它们可以与 Pyramid 配合使用来生成 HTML 内容。但是在实际使用中还是有些差别的&#xff0c;尤其会遇到各种各样的问题&#xff0c;下面我将利用我所学的知识一一为大家解…

Python | Leetcode Python题解之第87题扰乱字符串

题目&#xff1a; 题解&#xff1a; class Solution:def isScramble(self, s1: str, s2: str) -> bool:cachedef dfs(i1: int, i2: int, length: int) -> bool:"""第一个字符串从 i1 开始&#xff0c;第二个字符串从 i2 开始&#xff0c;子串的长度为 le…

MyBatis——MyBatis 参数处理

一、单个简单类型参数 简单类型包括&#xff1a; byte short int long float double char Byte Short Integer Long Float Double Character String java.util.Date java.sql.Date parameterType 属性&#xff1a;告诉 MyBatis 参数的类型 MyBatis 自带类型自动推断机制…

部署Discuz论坛项目

DIscuz 是由 PHP 语言开发的一款开源社交论坛项目。运行在典型的LNMP/LAMP 环境中。 安装MySQL数据库5.7 主机名IP地址操作系统硬件配置discuz-db192.168.226.128CentOS 7-mini-20092 Core/4G Memory 修改主机名用来自己识别 hostnamectl set-hostname discuz-db #重连远程…

虚拟资源在线交易服务平台源码 线上虚拟商品交易平台搭建

在信息爆炸的时代&#xff0c;虚拟资源、素材、源码系统等等以其独特的魅力&#xff0c;逐渐成为人们日常生活和工作中不可或缺的一部分。如何高效地获取、管理和交易这些虚拟资源&#xff0c;分享一款虚拟资源在线交易服务平台源码&#xff0c;轻松搭建线上虚拟商品交易平台&a…

【全开源】智慧小区物业管理小程序基于FastAdmin+UniApp

基于FastAdminUniApp开发的智慧小区物业管理小程序&#xff0c;包含小区物业缴费、房产管理、在线报修、业主活动报名、在线商城等功能。为物业量身打造的智慧小区运营管理系统&#xff0c;贴合物业工作场景&#xff0c;轻松提高物业费用收缴率&#xff0c;更有功能模块个性化组…

HTML静态网页成品作业(HTML+CSS+JS)——华为商城网页(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;使用Javacsript代码实现首页图片切换轮播效果&#xff0c;共有1个页面…

【网络安全产品互联互通 告警信息资产信息】相关思维导图

近日&#xff0c;在某客户安全建设项目中&#xff0c;涉及安全告警事件的梳理上报。在整理及学习中发现最近&#xff08;以19年等保2.0为参考分隔“最近”&#xff09;发布的可参考标准&#xff0c;因此做了思维导图的整理。 PS&#xff1a;标准中存在引用的情况&#xff0c;过…

OpenHarmony NAPI 使用Cmake 编译C++ .so 并ets调用

一、前言 这两年多随着国产化兴起&#xff0c;国内越来越多的项目都要求支持国产化系统&#xff0c;并且随着OpenHarmony 开源&#xff0c;更多的人都想分一杯羹。因此&#xff0c;我们公司也要求&#xff0c;所有产品的都需要支持开源鸿蒙OpenHarmony。 对于我们这边的设备&am…

Mybatis进阶详细用法

目录 条件构造器 案例 自定义SQL 案例 Service接口 案例 综合案例 条件构造器 案例 Testvoid testQueryMapper() {// 创建 QueryWrapper 实例QueryWrapper<User> queryWrapper new QueryWrapper<>();queryWrapper.select("id," "username,&…

uniapp小程序:大盒子包裹小盒子但是都有点击事件该如何区分?

在开发过程中我们会遇到这种情况&#xff0c;一个大盒子中包裹这一个小盒子&#xff0c;两个盒子都有点击事件&#xff0c;例如&#xff1a; 这个时候如果点击评价有可能会点击到它所在的大盒子&#xff0c;如果使用css中的z-index设置层级的话如果页面的盒子多的话会混乱&…

基于微信小程序+JAVA Springboot 实现的【停车场小程序】app+后台管理系统 (内附设计LW + PPT+ 源码+ 演示视频 下载)

项目名称 项目名称&#xff1a; 停车场微信小程序的设计与实现 在当前信息技术飞速发展的背景下&#xff0c;停车场微信小程序的开发成为了一个创新的解决方案&#xff0c;旨在提高停车场管理的效率和用户的停车体验。本项目通过深入分析现有停车场管理系统的不足&#xff0c…

使用Apache Spark从MySQL到Kafka再到HDFS的数据转移

使用Apache Spark从MySQL到Kafka再到HDFS的数据转移 在本文中&#xff0c;将介绍如何构建一个实时数据pipeline&#xff0c;从MySQL数据库读取数据&#xff0c;通过Kafka传输数据&#xff0c;最终将数据存储到HDFS中。我们将使用Apache Spark的结构化流处理和流处理功能&#…