执行结构概述

执行结构概述

1.概述

1996年,计算机科学家Bohm和Jacopini证明了:任何简单或复杂的算法都可以由顺序结构分支结构循环结构这三种基本结构组合而成。

2.顺序结构

按照语句出现的顺序执行操作。

3.分支结构

分支结构又被称为选择结构,根据条件成与否来执行操作。

3.1 if条件语句

语法格式:

  • if(条件语句)
  • if(条件语句){....}else
  • if(条件语句){....}else if(条件语句)
  • if(条件语句) {...}else if(条件语句) {.....}else
import java.util.Scanner;

public class Demo2 {

	public static void main(String[] args) {
		System.out.println("请输入考试成绩:");
		Scanner input = new Scanner(System.in);
		int s = input.nextInt();
		if(s>=60 && s<=90) {
			System.out.println("恭喜你,成绩为合格");
		}else if(s>90 && s<=100){
			System.out.println("恭喜你,成绩为优秀");
		}else if(s<60 && s>=0){
			System.out.println("很遗憾,你的成绩不合格");
		}else {
			System.out.println("输入成绩有误");
		}
		input.close();
	}
}

运行结果:image-20210905171331599

3.2 switch语句

语法结构:

switch(表达式) {

​ case 取值1:语句块1;break;

​ case 取值2:语句块2;break;

​ ....

​ case 取值n:语句块n;break;

​ default:语句块n+1;break;

}

注意

  • 表达式的返回值必须是下述几种类型之一:int,byte,char,short,String
  • case字句中的取值必须是常量,且所有case子句中的取值应是不同的
  • default子句是可选的
  • break语句是用来在执行一个case分支后使程序跳出switch语句块;如果case后面没有break则直接往下面执行
System.out.println("请输入月份(1-12):");
		int month = input.nextInt();
		switch(month) {
		case 1:
		case 2:
		case 3:System.out.println("这是春季");break;
		case 4:
		case 5:
		case 6:System.out.println("这是夏季");;break;
		case 7:
		case 8:
		case 9:System.out.println("这是秋季");break;
		case 10:
		case 11:
		case 12:System.out.println("这是冬季");break;
		default:System.out.println("你输入有误");break;
		}

运行截图:image-20210907104636532

4.循环结构

循环结构是一种重复结构,如果条件成立,他会重复执行某一个循环体,直到出现不满足的条件为止

4.1 for循环

4.2 while循环

4.2.1 语法结构①:

while (条件表达式){

//语句块

}

public class Demo4 {
	
	public static void main(String[] args) {
		
		//1.分析循环条件和循环操作
		int i = 0;
		//2.套用while语法写出代码
		//i++ 更新循环变量
		while(i++<10) {
			System.out.println("循环在执行:"+ i);
		}
		//3.检验代码能否退出
		System.out.println("执行结束:"+i);
	}

}

运行截图:image-20210908233054160

4.2.2 语法结构②:

do {

//语句块

}while(条件表达式)

public class Demo6 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        //此时i远远小于10但是仍然执行1次 
		int i = 0;
		do {
			i++;
			System.out.println("第"+i+"次执行!");
		}while (i>10);
	}

}

运行截图:image-20210908233800270

while循环和do while循环:

  • while是先判断条件,如果条件满足在执行循环操作
  • do while先执行一遍循环操作,然后在判断条件,如果条件满足则继续循环操作

4.3 for循环

语法结构:

for(定义循环变量;判断循环条件;更新循环变量) {

//循环操作

}

for (int i = 1;i <= 10;i++) {
			System.out.println("执行第"+i+"次");
		}

运行截图:image-20210908234718301

面试题:

for (System.out.println("1");;System.out.println("2")) {
			System.out.println("3");
		}

执行结果是什么?

答案:会先执行一遍输出1,然后在执行输出3,接着输出2,最后反复输出3,2

4.4 循环嵌套

public static void main(String[] args) {
		//控制行数
		for(int i=0;i<10;i++) {
			//控制列数
			for(int j=0;j<10;j++) {
				System.out.print("* ");
			}
			//换行
			System.out.print("\n");
		}
	}

运行结果:image-20210922215853174

4.5 循环退出:break,continue

4.5.1 break:

break是用于中止本轮所有次循环,即不执行次循环中break后面的语句,直接跳出循环。

4.5.2 continue:

continue是用于中止本轮本次循环,即本次循环中continue后面的代码不执行,进行下一次循环的入口判断。

public static void main(String[] args) {
		// TODO Auto-generated method stub
		for(int i = 0;i < 10;i++) {
			if(i == 5) {
				break;
			}
			System.out.print(i);
		}
	}

运行结果:image-20210922220601631

for(int i = 0;i < 10;i++) {
			if(i == 5) {
				continue;
			}
			System.out.print(i);
		}

运行结果:image-20210922221144993

4.6 如何退出多重循环

//退出多重循环
		lotsOfFor:for(int i = 0;i < 10;i++) {
			for(int j = 0;j < 10;j++) {
				if(i == 2 && j == 2) {
					break lotsOfFor;
				}
				System.out.println("i="+i+",j="+j);
			}
		}

运行结果:image-20210922221322945

posted @ 2021-09-08 23:56  雨溟  阅读(238)  评论(1)    收藏  举报