Java入门-03、流程控制语句

流程控制语句分类

  • 顺序结构
  • 分支结构(if , switch)
  • 循环结构 (for ,while ,do...while)

 

顺序结构

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

 


public class Main {

    public static void main(String[] args) {
        //顺序结构
        System.out.println("开始");
        System.out.println("执行语句1");
        System.out.println("执行语句2");
        System.out.println("结束");
    }
}

分支语句

if语句格式1

格式:

if(关系表达式){

语句体;

}

执行流程:首先计算关系表达式的值,如果关系表达式的值为true,则执行语句体,如果为false则不执行,然后继续执行后面的语句内容。

public class Main {

    public static void main(String[] args) {
        //执行
        if (true) {
            System.out.println("执行语句体1");
        }

        //不执行
        if (false) {
            System.out.println("执行语句体2");
        }
    }
}

 

if语句格式2

if(关系表达式){

语句体1;

}else{

语句体2

}

执行流程:计算关系表达式的值,如果为true则执行语句体1,如果为false则执行语句体2的内容,然后继续执行之后的内容。

public class Main {

    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        if (a==b) {
            System.out.println("执行语句体1");
        }else{
            System.out.println("执行语句体2");
        }
    }
}

if语句格式3

if(关系表达式1){

语句体1;

}else if(关系表达式2){

语句体2;

}...

else{

语句体n;}

执行流程:先计算关系表达式1的值,如果为true则执行语句体1,如果为false则计算关系表达式2的值,如果为true则执行语句体2,以此类推,最后继续执行之后的内容

public class Main {

    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        if (a==b) {
            System.out.println("执行语句体1");
        }else if(a>b){
            System.out.println("执行语句体2");
        }else{
            System.out.println("执行语句体3");
        }
    }
}

 

switch语句


switch(表达式){
case值1:
执行语句:语句体1;
break;
case值2:
执行语句:语句体2;
break;

...

default:语句体n;

break;
}

表达式:可以取值为byte,short,int,long,String等

case:与表达式的值作比较

break:中断,用来结束switch语句

default:表示所有情况都不匹配的时候就执行该处内容

注意:
case的穿透性:假若找到目标值,但是缺未找到break,则继续执行下面的语句直到找到break为止
循环语句:
for(初始化,约束条件,调整){}
while(约束条件){}
do{}while(约束条件)
注意:在for循环条件内定义的循环变量不能够在循环方法体外使用

public static void main(String[] args) {
        //switch语句:

        int c = 2;
        switch (c) {//c的值是2 输出语句应为:选择第二个事件
            case 1:
                System.out.println("选择第一个事件");
                break;
            case 2:
                System.out.println("选择第二个事件");
                break;
            case 3:
                System.out.println("选择第三个事件");
                break;
            default:
                System.out.println("结束");
                break;
        }


       /* case的穿透性  假若目标值的case事件后没有break,则会一直执行下面语句直到遇见break

       值是1 输出语句应为:选择第一个事件
                        选择第二个事件
                        选择第三个事件
                        结束
        switch(1){
            case 1:
                System.out.println("选择第一个事件");

            case 2:
                System.out.println("选择第二个事件");

            case 3:
                System.out.println("选择第三个事件");

            default:
                System.out.println("结束");
                break;
        }*/

        /*循环语句:
        for(初始化,约束条件,调整){}
        while(约束条件){}
        do{}while(约束条件)*/

      /*  for语句
        在for循环条件内定义的循环变量不能够在循环方法体外使用
         如下中for循环中所定义的变量q,在for循环方法体外部不能够被使用*/
        for (int q = 0; q < 10; q++) {
            System.out.println("循环:" + q);
        }

        //while语句   while(){}与do{}while()等效;
        int j = 5;
        while (j > 0) {
            System.out.println("循环:" + j);
            j--;
        }

      /* do{
           System.out.println("循环:"+j);
           j--;
       }while(j>0);*/

    }

循环语句

for循环

先有外层for循环,如果条件成立,进入内层for循环
那么,内层for就开始一直循环,循环到内层for循环结束为止,比较返回false

外层for循环再循环一次,比较成立,进入内层for循环

public static void main(String[] args) {
        for(int i=0;i<10;i++) {
            System.out.println("i: "+i);
            for(int j=0;j<10;j++){
                System.out.print("j: "+j+" ");
            }
            System.out.println();
        }
    }

注意:

break:在switch中结束选择语句的
在循环中,是结束整个循环的

continue:跳出了本次循环,进入下一次循环

 public static void main(String[] args) {
        //break在循环中结束整个循环
        for (int i = 0; i < 5; i++) {
            if (i == 3) break;
            System.out.println(i);
        }


        //break在switch中结束选择语句
        int c = 2;
        switch (c) {//c的值是2 输出语句应为:选择第二个事件
            case 1:
                System.out.println("选择第一个事件");
                break;
            case 2:
                System.out.println("选择第二个事件");
                break;
            case 3:
                System.out.println("选择第三个事件");
                break;
            default:
                System.out.println("结束");
                break;
        }

        //continue:跳出了本次循环,进入下一次循环
        for (int i = 0; i < 5; i++) {
            if (i == 2) continue;
            System.out.println(i);
        }
    }

例子:找水仙花数

水仙花数是一个三位数,而且其个位十位百位的数字立方和等于原数

例:153=1*1*1+5*5*5+3*3*3

public class Main {

    public static void main(String[] args) {
        //水仙花数是一个三位数,而且其个位十位百位的数字立方和等于原数
        //找出100到200之间的水仙花数
        int n = 200;
        for (int i = 100; i < n; i++) {
            int x, y, z;
            int j = i;
            x = j / 100;
            y = (j - 100) / 10;
            z = j % 10;
            if ((x * x * x + y * y * y + z * z * z) == j) {
                System.out.println(j);
            }
        }
    }
}

while语句

格式

初始化语句

while(条件判断语句){

循环体语句;

条件控制语句;

}

执行流程:1、先执行初始化语句,2、执行条件判断语句,如果是false则循环结束,如果是true则继续执行,3、执行循环体语句,4、执行条件控制语句,5、继续执行2条件判断语句

public class Main {

    public static void main(String[] args) {
        int i = 0;
        while (i < 5) {
            System.out.println("执行" + i);
            ++i;
        }

        //等价于
        for (int j = 0; j < 5; j++) {

            System.out.println("执行"+j);
        }
    }
}

do...while循环语句

格式:

初始化语句;

do{

循环体语句;

条件控制语句;

}while(条件判断语句);

执行流程:1、执行初始化与语句 2、执行循环体语句 3、执行条件控制语句 4、执行条件判断语句,如果是false则循环结束,如果为true则继续执行 5、回到2 继续执行循环体语句

public class Main {

    public static void main(String[] args) {
        
        //注意do..while循环语句中,至少会执行一次语句体
        int i = 0;
        do {
            i++;
            System.out.println("HelloWorld!");
        } while (i < 5);
    }
    
}

三种循环的区别:

for循环和while循环是先执行判断条件是否成立,然后在执行

do...while循环是先执行一次循环体,才判断条件是否成立

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

TorlesseLiang

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

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

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

打赏作者

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

抵扣说明:

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

余额充值