java控制流程

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);
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

F l e

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值