Java入门教程(三)流程控制语句

三.Java流程控制语句

1.if…else…结构

选择结构(也叫分支结构)解决了顺序结构不能判断的缺点,可以根据一个条件判断执行哪些语句块。选择结构适合于带有逻辑或关系比较等条件判断的计算。例如,判断两个数的大小等。

1.1 if语句格式1

格式:
if(关系表达式){
	语句体;
}

执行流程:

①首先计算关系表达式的值
②如果关系表达式的值为true就执行语句体
③如果关系表达式的值为false就不执行语句体
④继续执行后i按的语句内容
在这里插入图片描述

1.2 if语句格式2

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

执行流程:

①首先计算关系表达式的值
②如果关系表达式的值为true就执行语句体1
③如果关系表达式的值为false就执行语句体2
④继续执行后面的语句内容
在这里插入图片描述

1.3 if语句格式3

格式:
if(关系表达式1){
	语句体1;
}else if(关系表达式2){
	语句体2;
}
……
else{
	语句体n+1;
}

执行流程:
①首先计算关系表达式1的值
②如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
③如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
④……
⑤如果没有任何关系表达式为true,就执行语句体n+1
在这里插入图片描述

2.switch结构

格式:
switch(表达式){
	case1:
			语句体1;
			break;
		
	case2:
			语句体2;
			break;
	……
	default:
			语句体n+1;
			[break;]
}

格式说明:

  • 表达式:取值为byte、short、int、char,JDK5以后可以是枚举,JDK7以后可以是String。
  • case:后面跟的是要和表达式进行比较的值。
  • break:表示中断,结束的意思,用来结束switch语句
  • default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。

执行流程:

①首先计算表达式的值
②依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
③如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后程序结束。
在这里插入图片描述

public class Demo {
    public static void main(String[] args) {
        System.out.println("开始");
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入一个星期数(1-7):");
        int week = sc.nextInt();

        switch (week){
            case 1:
                System.out.println("星期一");
                break;
            case 2:
                System.out.println("星期二");
                break;
            case 3:
                System.out.println("星期三");
                break;
            case 4:
                System.out.println("星期四");
                break;
            case 5:
                System.out.println("星期五");
                break;
            case 6:
                System.out.println("星期六");
                break;
            case 7:
                System.out.println("星期日");
                break;
            default:
                System.out.println("你输入的星期数有误!");
                break;
        }
        System.out.println("结束");
    }
}

程序运行结果:
在这里插入图片描述
在这里插入图片描述

3.for结构

3.1 循环结构

循环结构的组成:

  • 初始化语句:用于表示循环开启时的起始状态,简单说就是循环开始的时候是什么样。
  • 条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去。
  • 循环体语句:用于表示循环反复执行的内容,简单说就是循环反复执行的事情。
  • 条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去。

循环结构对应的语法

  • 初始化语句:这里可以是一条或者多条语句,这些语句可以完成一些初始化操作。
  • 条件判断语句:这里使用一个结果值为boolean类型的表达式,这个表达式能决定是否执行循环体。
  • 循环体语句:这里可以是任意语句,这些语句将反复执行。
  • 条件控制语句:这里通常是使用一条语句来改变变量的值,从而达到控制循环是否继续向下执行的效果。

3.2 for循环语句格式

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

执行流程:

①执行初始化语句
②执行条件判断语句,看其结果是true还是false。如果是true继续执行,如果是false循环结束
③执行循环体语句
④执行条件控制语句
⑤回到②继续
在这里插入图片描述

在这里插入图片描述

4.while结构

4.1 while循环语句

基本格式:
while(条件判断语句){
	循环体语句;
}

完整格式:
初始化语句;
while(条件判断语句){
	循环体语句;
	条件控制语句;
}

执行流程:

①执行初始化语句
②执行条件判断语句,看起结果是true还是false。如果是false,循环结束;如果是true,继续执行。
③执行循环体语句
④执行条件控制语句
⑤回到②继续
在这里插入图片描述
在这里插入图片描述

4.2 do…while循环语句

基本格式:
do{
	循环体语句;
}while(条件判断语句);


完整格式:
初始化语句;
do{
	循环体语句;
	条件控制语句;
}while(条件判断语句);

执行流程:

①执行初始化语句
②执行循环体语句
③执行条件控制语句
④执行条件判断语句,看其结果是true还是false。如果是false,循环结束;如果是true,继续执行。
⑤回到②继续
在这里插入图片描述
在这里插入图片描述

5.三种循环区别

三种循环的区别

  • for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
  • do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)

for和while的区别

  • 条件控制语句所控制的自增变量,应为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
  • 条件控制语句所控制的自增变量,对于while循环体来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用

死循环格式:

for(;;){ }
while(true){ }
do{ }while(true);

while的死循环格式是最常用的。

6.跳转控制语句

6.1 跳转控制语句概述

  • continue:用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行。
  • continue 语句只能用在 while 语句、for 语句或者 foreach 语句的循环体之中,在这之外的任何地方使用它都会引起语法错误。
  • break:用在循环中,继续条件控制,终止循环体内容的执行,也就是说结束当前的整个循环。

7.循环嵌套

语句结构

  • 顺序语句:以分号结尾,表示一句话的结束。
  • 分支语句:一对大括号表示if的整体结构,整体描述一个完整的if语句;一对大括号表示switch的整体结构,整体描述一个完整的switch语句。
  • 循环语句:一对大括号表示for的整体结构,整体描述一个完整的for语句;一对大括号表示while的整体结构,整体描述一个完整的while语句;do…while以分号结尾,整体描述一个完整的do…while语句。

任何语句对外都可以看成是一句话,一句代码。在分支语句中包含分支语句成为分支嵌套。循环语句中包含循环语句成为循环嵌套。

public static void main(String[] args) {
    System.out.println("乘法口诀表:");
    // 外层循环
    for (int i = 1; i <= 9; i++) {
        // 内层循环
        for (int j = 1; j <= i; j++) {
            System.out.print(j + "*" + i + "=" + j * i + "\t");
        }
        System.out.println();
    }
}

程序运行结果:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值