执行结构概述
执行结构概述
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();
}
}
运行结果:
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;
}
运行截图:
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);
}
}
运行截图:
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);
}
}
运行截图:
while循环和do while循环:
- while是先判断条件,如果条件满足在执行循环操作
- do while先执行一遍循环操作,然后在判断条件,如果条件满足则继续循环操作
4.3 for循环
语法结构:
for(定义循环变量;判断循环条件;更新循环变量) {
//循环操作
}
for (int i = 1;i <= 10;i++) {
System.out.println("执行第"+i+"次");
}
运行截图:
面试题:
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");
}
}
运行结果:
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);
}
}
运行结果:
for(int i = 0;i < 10;i++) {
if(i == 5) {
continue;
}
System.out.print(i);
}
运行结果:
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);
}
}
运行结果:

浙公网安备 33010602011771号