Java基础007-流程控制

流程控制

流程控制:在程序执行过程中,每条语句的执行顺序对程序的结果有直接影响。因此我们要控制语句的执行顺序,来实现我们的功能。

顺序结构

顺序结构:程序中的语句从上到下顺序执行。

public class Test {
    public static void main(String[] args) {
        //顺序执行,根据编写的顺序从上到下顺序执行。
        System.out.println(1);
        System.out.println(2);
        System.out.println(3);
        System.out.println(5);
    }
}

选择结构

判断语句 if

格式1:if

if([关系表达式]){
	[语句体];
}

执行流程:首先判断关系表达式的结果是ture还是false,如果是ture执行语句体,如果是false,不执行语句体判断语句结束。

格式2:if...else

if([关系表达式]){
	[语句体1];
}else{
    [语句体2];
}

执行流程:首先判断关系表达式的结果是ture还是false,如果是ture执行语句体1,然后判断语句结束,如果是false执行语句体2,然后语句体结束。

格式3:if...else if...else

if([关系表达式1]){
    [语句体1];
}else if([关系表达式2]){
    [语句体2];
}
......
}else if([关系表达式n]){
    [语句体n];
}else{
    [语句体n+1];
}

执行流程:首先判断关系表达式的结果是ture还是false,如果是ture执行语句体1,然后选择语句结束,如果是false判断下面的else if中的关系表达式,如果出现ture就执行内部语句体然后结束选择语句,在不出现ture的情况下如果最后有else(注意不是if else)内部的语句体,选择语句结束,如果没有else选择语句结束。

选择语句 switch

格式:

switch ([表达式]){
    case [常量值1]:
        [语句体1];
        break;
    case [常量值2]:
        [语句体2];
        break;
    ......
    case [常量值n]:
        [语句体n];
        break;
    default:
        [语句体n+1];
        break;
}

举例:

public class Test {
    public static void main(String[] args) {
        switch(2) {
            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("结束");	//会输出
        }
    }
}

执行流程:首先计算出表达式的值依次和case:比较,一旦有对应的值就会执行相应case:内的语句。遇到break;就会结束这次选择语句。在所有的case:都不匹配的情况下,如果有default:,就会执行default:内的语句,如果没有default:,选择语句结束。

注意事项:

  1. switch后面表达式的值和case:后面的常量值只能是基本数据类型byte\short\int\char类型,和引用数据类型String字符串\enum枚举
  2. 多个case:的情况下后面的常量值不能重复。
  3. switch语句很灵活,case:前后顺序可以颠倒,而且break;语句也可以省略。
  4. 每个case:都要带break;语句,因为如果没有带break;语句,就会穿透下面的case:语句直达遇到break;或者直到执行到大括号才会结束选择语句。

循环结构

循环结构:是在条件允许的条件下,反复执行某一段代码,这段被反复执行的代码叫做循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环体会被一直执行下去,形成死循环。

基本组成部分:

  1. 初始化语句:在循环开始的时候执行,而且只执行一次。
  2. 条件判断:如果条件成立,则循环继续,如果条件不成立,则循环结束。
  3. 循环体:重复要做的事情,若干行语句。
  4. 步进语句:每次循环之后要进行的扫尾工作,每次循环结束要结束一次。
循环语句 for

格式:

for([初始化表达式];[布尔表达式];[步进表达式]){
    [循环体];
}

执行流程:第一步:负责完成循环变量初始化。第二步:判断时候满足循环条件,不满足跳出循环。第三步:执行循环体。第四步:执行步进语句。循环执行第二步、第三步、第四步,如果第二步不满足则跳出循环。

循环语句 while
[初始化表达式];
while([布尔表达式]){
    [循环体];
    [步进表达式];
}

执行流程:第一步:负责完成循环变量初始化。第二步:判断时候满足循环条件,不满足跳出循环。第三步:执行循环体。第四步:执行步进语句。循环执行第二步、第三步、第四步,如果第二步不满足则跳出循环。

循环语句 do...while
[初始化表达式];
do{
    [循环体];
    [步进表达式];
}while([布尔表达式]);

执行流程:第一步:负责完成循环变量初始化。第二步:执行循环体。第三步:执行步进语句。第四步:判断时候满足循环条件,不满足跳出循环。循环执行第二步、第三步、第四步,如果第四步不满足则跳出循环。

举例:

public class Test {
    public static void main(String[] args) {
        {
            int m = 10;
            while (m > 10) {
                System.out.println(m);
                m--;
            }
            //没有输出
        }{
            int m = 10;
            do{
                System.out.println(m);
                m--;
            }while(m>10);
            //输出一次
        }
    }
}

注意事项:

  1. for循环while循环是先判断后执行,do...while循环是先执行后判断下次是否执行。因此for循环while循环如果条件从没有满足过循环将会执行0次。do..while循环不管条件是否满足,循环最少执行一次。
  2. for循环的初始化语句是在循环内部定义,循环结束不能在使用。while循环和do...while循环的初始化语句是在循环外部定义,循环结束还可以继续使用。
  3. 如果循环次数确定,多用for循环,其他情况可以考虑while循环,do...while循环用的最少。
break关键字

用法:

  1. 可以用在switch语句当中,如果执行了该语句,整个switch语句立刻结束。
  2. 可以用在循环语句当中,如果执行了该语句,整个循环语句立刻结束。

举例:

public class Test {
    public static void main(String[] args) {
        {
            for (int i = 1; i <= 10; i++) {
                System.out.println("输入第 " + i + " 次");
            }
        }	//输出10次
        System.out.println("===========");
        {
            for (int i = 1; i <= 10; i++) {
                if(i>5){	//当i>5时执行语句break;跳出循环
                    break;
                }
                System.out.println("输入第 " + i + " 次");
            }
        }	//输出5次
    }
}
continue关键字

用法:

  1. 用在循环语句中,如果执行了该语句,立刻跳过当前次循环剩余内容,马上执行下一次循环。
public class Test {
    public static void main(String[] args) {
        {
            for (int i = 1; i <= 10; i++) {
                System.out.println("输入第 " + i + " 次");
            }
        }
        System.out.println("===========");
        {
            for (int i = 1; i <= 10; i++) {
                if(i==5){
                    System.out.println("没有第5次了");
                    continue;
                }
                System.out.println("输入第 " + i + " 次");
            }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值