Java流程控制语句

一、顺序结构

按代码顺序,从上到下以此执行

二、分支结构

  • if语句

  1. 格式一

if(判断语句){
    语句体;
}

先判断语句结果;

如果结果为true,执行语句体;

如果结果为false,则不执行。

  1. 格式二

if(判断语句){
    语句体1;
}
else{
    语句体2;
}

先判断语句结果;

如果结果为true,执行语句体;

如果结果为false,则执行语句2。

  1. 格式三

if(判断语句1){
    语句体1;
}
else if(判断条件2){
    语句体2;
}
...
else{
    语句体n+1;
}

先判断语句1结果;

如果结果为true,执行语句体1;

如果结果为false,则判断语句2结果,依次重复以上操作。

若都不成立,执行最后的else

  1. 注意事项:

1)如果语句体只有一条执行语句,{}可以省略;

2)if后的()和{}间不要加“;”

  • switch语句

  1. 格式:

switch(表达式){
    case 值1:
        语句体1;
        break;
    case 值2:
        语句体2;
        break;
...
    default//语法上非必要,但是加上更利于解决问题
        语句体n+1;
        break;
}
  1. 执行流程:

1)用()中将要匹配的值,跟case给出的选项,逐个进行匹配,匹配成功,执行对应语句,再由break结束整个switch语句

2)如果都匹配失败,执行最后的default

  1. 示例:

public static void switchTest(){
        Scanner sc = new Scanner(System.in);
        System.out.printf("请输入");
        int week = sc.netInt();
        
        switch(week){
            case 1:
            System.out.printf("星期一");
            break;
            case 2:
            System.out.printf("星期二");
            case 3:
            System.out.printf("星期三");
            break;
            case 4:
            System.out.printf("星期四");
            break;
            case 5:
            System.out.printf("星期五");
            break;
            case 6:
            System.out.printf("星期六");
            break;
            case 7:
            System.out.printf("星期天");
            break;
            default
            System.out.printf("您的输入错误");
            break;


}



}

注意:

1.case后面的值不能重复

2.case后面的值只能是字面量,不能是变量

3.switch()可以接受的类型:

1)基本数据类型:byte short char int

2)引用数据类型:jdk5版本开始可以是枚举,jdk7版本开始可以是String字符串

  1. case穿透现象:无break,会持续按顺序执行代码

当case重复出现代码,可用case穿透优化代码

public static void switchTest(){
        Scanner sc = new Scanner(System.in);
        System.out.printf("请输入");
        int week = sc.netInt();
        
        switch(week){
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                System.out.printf("工作日");
            break;
            case 6: 
            case 7:
                System.out.printf("休息日");
                break;
            default
                System.out.printf("您的输入错误");
                break;


}



}

jdk14版本开始,case后允许编写多个数据,多个数据间用逗号分隔

public static void switchTest(){
        Scanner sc = new Scanner(System.in);
        System.out.printf("请输入");
        int week = sc.netInt();
        
        switch(week){
            case 1,2,3,4,5:
                System.out.printf("工作日");
            break;
            case 6,7: 
                System.out.printf("休息日");
                break;
            default
                System.out.printf("您的输入错误");
                break;


}



}

补充:case 值→要执行的代码

可以省略break,但仍起break作用

  • 选择if和switch语句

if语句:适用于范围性的判断

switch语句:适用于固定值的匹配

三、循环语句

  • for循环

  1. 格式:

for(初始化语句;条件判断句;条件控制语句){
        循环体语句;
}

2.执行流程:

1)执行初始化语句,在整个循环过程中,只执行一次

2)执行判断条件,看其返回结果是true,false

false : 循环结束

true :执行第三步,执行循环体语句

4)执行条件控制语句

5) 回到2继续...

示例:

public static void print(){
        Scanner sc = new Scanner(System.in);
        System.out.printf("请输入");
        int n = sc.netInt();
        if(n<1)
        System.out.println("您输入的数值有误");
        else{
            for(int i=1;i<n;i++)
                {
                    System.out.println("哈哈哈哈哈哈");
                }


            }
        


}

注:循环中控制循环的变量可以在循环体中继续使用

循环的条件控制语句,不要局限的认为只能是--

  1. 注意事项

1)for循环{}中定义的变量,在一轮循环结束后,都会在内存中释放,不能再在{}外使用;

  1. for()中定义的变量,在整个循环结束后,会从内存中释

public static void print999(){
        for(int i = 1;i <= 9;i++){
            for(int j=1;j<=i;j++){
                System.out.print(j + "*" + i + "=" + i*j + "\t");
            
            }
            System.out.println( );
        }

}
  • while循环

  1. 格式

while(条件判断语句){
        循环体语句;
        条件控制语句;
}

2.执行步骤

1)执行初始化语句

2)执行判断条件,看其返回结果是true,false

false : 循环结束

true :进入第三步

3)执行循环体语句

4)执行条件控制语句

5)回到2继续

  • do...while循环

  1. 格式

do{
       循环体语句;
       条件控制语句;

}while(条件判断语句);
  1. 执行步骤

1)执行初始化语句

2)执行循环体语句

3)执行条件控制语句

4)执行判断条件,看其返回结果是true,false

false :循环结束

true :回到第二步继续

3.特点:至少执行一次循环体

  • 三种循环区别

  1. for循环和while循环先判断条件再执行

do...while循环先执行再判断条件

  1. for循环:用于控制循环的变量,在循环结束后不可继续使用

while循环:用于控制循环的变量,在循环结束后可以继续使用

for循环和while循环本质无区别

  • 跳转控制语句

break:结束循环和switch语句,只能在这两类语句使用

continue:跳过本次循环,继续下次循环,只能在循环中使用

注意:break和continue下不允许再写代码,执行不到,属于无效代码

标号:在循环前加上合法的标识符,写在break或者continue后,可指挥对该循环起作用

示例:

lo:
while(true){
        switch(week){
            .....
            case 3:
            System.out.println("星期三");
            break lo;//直接结束外层循环
            .....
        }

}
  • 死循环

  1. for(;;){}

  1. while(true){}

  1. do{}while(true);

  • Random

import java.util.Random;//导包
public class Test{
    public static void main(String[] args){
        Random r = new Random();//r为变量,可以替换为其他的
        int num = r.netInt(10);//数值在0-9


        }

}

数值在a-b之间的随机数

int num = r.netInt(b+1-a)+a;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值