java控制流程

news2024/9/20 18:34:53

1.块作用域

用一对大括号括起来的就是一个块,块确定了变量的作用域。一个块可以嵌套在另一个块中。块外的变量在块内有效,而块内的变量在块外无效。

public class Main{
    public static void main(String[] args){
        int i=1;
        {
            System.out.println("i="+i);
            int j=1;
        }
        //System.out.println("j="+j); //错误
    }
}

在这里插入图片描述

块内的变量名不可以和块外的一样,像下面这样是错的,因为会引起歧义:

public class Main{
    public static void main(String[] args){
        int i=1;
        for(int i=1;i<3;i++)  
        {
            ...
        }
    }
}

2.控制流程

在这里插入图片描述

2.1 条件语句

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        System.out.println("Input a number:");
        Scanner in=new Scanner(System.in);
        int input=in.nextInt();
        if(input==1)
        {
            System.out.println("I love young woman");
        }
        else if(input==2)
        {
            System.out.println("I love java");
        }
        else
        {
            System.out.println("I love you");
        }
    }
}

在这里插入图片描述

2.2 循环

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        int input =in.nextInt();
        System.out.println("result of while");
        while(input >0)
        {
            System.out.println("input="+ input);
            input--;
        }
        System.out.println("result of do while");
        do
        {
            System.out.println("input="+ input);
            input--;
        }while(input>0);
        for (int i=0;i<1;i++)
        {
            System.out.println("I love young woman");
        }
    }
}

在这里插入图片描述

2.3 多重选择语句

在switch语句中可以使用yield来返回switch表达式的值。不能在** switch 表达式**中使用 return、break或 continue 语句。

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        String s=in.next();
        //4种switch用法
        //无直通-表达式
        int a=switch(s){
            case "spring"->{
                System.out.println("Input string is \"spring\"");
                yield 0;  //返回表达式的值
            }  //注意这里不需要加分号
            case "summer"->1;
            case "fall"->2;
            case "winter"->3;
            default -> 100;
        };
        System.out.println("a="+a);
        //无直通-语句
        int b;
        switch (s){
            case "spring"->{
                b=0;
            }
            case "summer"->{
                b=1;
            }
            case "fall"->{
                b=2;
            }
            case "winter"->{
                b=3;
            }
            default -> {
                b=100;
            }
        }
        //直通-表达式 , 注意表达式里面是不能用break中断的,只能用yeild
        int c=switch(s){
            case "spring":
                yield 0;
            case "summer":
                yield 1;
            case "fall":
                yield 2;
            case "winter":
                yield 3;
            default:
                yield 100;
        };
        System.out.println("c="+c);
        //直通-语句
        int d;
        switch (s){
            case "spring":
                d=0;break; //注意不需要{}
            case "summer":
                d=1;break;
            case "fall":
                d=2;break;
            case "winter":
                d=3;break;
            default:
                d=100;
        };
        System.out.println("d="+d);
    }
}

在这里插入图片描述
此外。注意case后面的标签有如下要求:
在这里插入图片描述
其中多个字符串就比如下面的代码:

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        String s=in.next();
        //4种switch用法
        //无直通-表达式
        int a=switch(s){
            case "spring","summer"->0;
            case "fall"->1;
            case "winter"->2;
            default -> 100;
        };
        System.out.println("a="+a);
    }
}

在这里插入图片描述

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

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

相关文章

【2024】JAVA实现响应式编程Reactor具体API文档使用说明

目录&#x1f4bb; 前言一、简介1、响应式编程概述背景知识什么是响应式编程具体概述应用场景:常用的库和框架 二、 Reactor实现响应式编程1、Flux 和 Mono介绍Flux:Mono:Flux 和 Mono 的区别:Flux 和 Mono 的关系: 2、常用API使用添加依赖2.1、生产流常用汇总 2.1.1、直接创建…

2024 高教社杯 数学建模国赛 (A题)深度剖析|“板凳龙” 闹元宵|数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题&#xff01; CS团队倾注了大量时间和心血&#xff0c;深入挖掘解…

设计模式之装饰器模式:让对象功能扩展更优雅的艺术

一、什么是装饰器模式 装饰器模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff08;Structural Pattern&#xff09;&#xff0c;它允许用户通过一种灵活的方式来动态地给一个对象添加一些额外的职责。就增加功能来说&#xff0c;装饰器模式相比使用…

“Jmeter-InfluxDB-Grafana“常见错误有哪些如何解决?

常见错误&#xff1a; 1.网络不同&#xff0c;检查网络IP是否写对&#xff0c;端口号有没有放开&#xff08;Centos7端口号命令&#xff09;&#xff0c;防火墙是否关闭 firewall-cmd --add-port3000/tcp --permanent firewall-cmd --add-port3000/udp --permanent firewall-…

中国剩余定理和扩展中国剩余定理(模板)

给你一元线性同余方程组&#xff0c;如下&#xff1a; 其中&#xff0c;当 , , ... , 两两互质的话就是中国剩余定理 &#xff0c; 不互质的话就是扩展中国剩余定理。 给出中国剩余定理的计算过程和扩展中国剩余定理的推理过程&#xff1a; #include<bits/stdc.h> us…

MT3516A-ASEMI三相整流桥MT3516A

编辑&#xff1a;ll MT3516A-ASEMI三相整流桥MT3516A 型号&#xff1a;MT3516A 品牌&#xff1a;ASEMI 封装&#xff1a;D-63 批号&#xff1a;2024 类型&#xff1a;三相整流桥 电流&#xff08;ID&#xff09;&#xff1a;35A 电压(VF)&#xff1a;1600V 安装方式&a…

C++开发基础之宏定义:入门、中级、高级用法示例解析

前言 在C开发中&#xff0c;宏定义是一种非常重要的预处理功能&#xff0c;能够简化代码、提高可读性、减少重复性工作。然而&#xff0c;宏的使用也存在一些潜在的风险&#xff0c;滥用宏可能导致代码难以调试和维护。在这篇博客中&#xff0c;我们将从入门、中级到高级&…

【数据库|第9期】SQL Server、Access和Sqlite 的字段别名详解

日期&#xff1a;2024年8月28日 作者&#xff1a;Commas 签名&#xff1a;(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释&#xff1a;如果您觉得有所帮助&#xff0c;帮忙点个赞&#xff0c;也可以关注我&#xff0c;我们一起成长&#xff1b;如果有不对的地方&#xf…

redis缓存的目的、场景、实现、一致性问题

文章目录 1、加缓存的目的&#xff08;作用&#xff09;&#xff1a;2、加缓存的场景&#xff1a;读多写少3、加不加缓存的标准&#xff1a;4、缓存的实现&#xff1a;5、缓存的实现方案&#xff1a;6、缓存的粒度问题7、缓存的一致性问题 专辑详情和声音详情属于并发量较高的数…

2024 高教社杯 数学建模国赛 (B题)深度剖析|生产过程中的决策问题|数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题&#xff01; CS团队倾注了大量时间和心血&#xff0c;深入挖掘解…

入门数据结构JAVA DS——如何实现简易的单链表(用JAVA实现)

前言 链表&#xff08;Linked List&#xff09;是一种线性数据结构&#xff0c;它由一系列节点组成&#xff0c;每个节点包含两个部分&#xff1a;存储数据的部分和指向下一个节点的指针&#xff08;或引用&#xff09;。链表的结构使得它能够动态地增长和收缩&#xff0c;适合…

Python操作ES集群API

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 学习B站博主教程笔记&#xff1a; 最新版适合自学的ElasticStack全套视频&#xff08;Elk零基础入门到精通教程&#xff09;Linux运维必备—Elastic…

光明乳业以“轻”礼庆团圆!第七届莫斯利安保加利亚国际酸奶文化节圆满落幕

近日&#xff0c;第七届莫斯利安保加利亚国际酸奶文化节圆满落下帷幕。今年国际酸奶文化节恰逢中秋佳节之际&#xff0c;光明莫斯利安联合上海博物馆&#xff0c;以其缂丝馆藏《灵仙祝寿图》为灵感&#xff0c;推出了一系列联名限定产品和周边&#xff0c;寓意健康团圆长长久久…

Elastic Stack--ES的DSL语句查询

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 学习B站博主教程笔记&#xff1a; 最新版适合自学的ElasticStack全套视频&#xff08;Elk零基础入门到精通教程&#xff09;Linux运维必备—Elastic…

工业边缘网关:智能制造的实时数据枢纽-天拓四方

在工业4.0的浪潮中&#xff0c;工业边缘网关已成为智能制造和工业物联网&#xff08;IIoT&#xff09;领域的关键技术。作为连接工业现场设备与云端平台的桥梁&#xff0c;边缘网关实现了数据的实时采集、处理和传输&#xff0c;为企业的生产管理和决策提供了重要支持。本文将重…

如何查看Pod的Container资源占用情况

云原生学习路线导航页&#xff08;持续更新中&#xff09; 方法一&#xff1a;直接查看pod的资源占用 kubectl top pods ${pod-name} -n ${ns} 方法二&#xff1a;通过运行的进程&#xff0c;查看pod的某个容器资源占用 1.找到pod所在node容器号&#xff1a;kubectl descri…

【Fastapi】使用Toml作为配置文件格式

【Fastapi】使用Toml作为配置文件格式 giteegithubtoml介绍我为什么用 toml作为配置文件格式具体使用&#xff08;没提到的请参考[官网](https://toml.io/cn/v1.0.0)&#xff09;文件格式代码中使用 gitee https://gitee.com/zz1521145346/fastapi_frame.git github https:/…

从羊城杯docCrack学习恶意宏

前言 一道涉及恶意宏的逆向题目&#xff0c;不算难。 知识点 关于OLE文件 office文档&#xff08;如.doc、.ppt、.xls等&#xff09;其实都是复合文档&#xff08;OLE&#xff09;&#xff0c;该文件格式全称为OLE复合文档格式&#xff0c;它允许多个数据流和存储在单个文件…

昂科烧录器支持ALLYSTAR华大北斗的GNSS芯片HD8020

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表&#xff0c;其中ALLYSTAR华大北斗的GNSS芯片HD8020已经被昂科的通用烧录平台AP8000所支持。 HD8020是一款能够实现单芯片解决方案&#xff0c;满足位置感知、物流运输等导航定位需求的SOC芯片…

java Abstract Queued Synchronizer

AbstractQueuedSynchronizer&#xff08;简称 AQS&#xff09;是 Java 中用于实现锁和同步器的一个基础框架&#xff0c;位于 java.util.concurrent.locks 包中。它提供了一种基于 FIFO&#xff08;先进先出&#xff09;队列的机制&#xff0c;帮助构建多线程之间的同步工具&am…