Java 程序的执行顺序

  • Post author:
  • Post category:java


第一章 顺序结构

1
计算机执行代码的默认顺序:程序从上到下从左到右执行,中间没有任何判断和跳转

第二章 分支结构

1
2
根据条件,选择性地执行某段代码
有if…else和switch...case两种分支语句

第1节 if…else

  • 语法结构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//方式一 
if(表达式){ //表达式结果为布尔型,如果表达式结果为true那么执行大括号中的代码
	//代码
}
//方式二   //表达式结果为布尔型
if(表达式){ //如果表达式结果为true那么执行大括号中的代码
	//代码
}else{ //如果表达式结果为false那么执行大括号中的代码
  //代码
}
//方式三    //表达式结果为布尔型
if(表达式1){
	//代码
}else if(表达式2){ //表达式结果为布尔型
  //代码
}
//方式四
if(表达式1){ //表达式结果为布尔型
	//代码
}else if(表达式2){  //表达式结果为布尔型
  //代码
}
...
else{
  //代码
}
  • 练习1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
int age=18;
if(age>=18){
    System.out.println("成年人");
}
if(age<18){
    System.out.println("未成年人");
}
//-------------------------------------------------------------------
int age=18;
if(age>=18){
    System.out.println("成年人");
}else{
    System.out.println("未成年人");
}
//-------------------------------------------------------------------
int x=10;
if(x>60){
    System.out.println("不及格");
}else if(x>=60 && x<80){
    System.out.println("CCC");
}else if(x>=80 && x<90){
    System.out.println("BBB");
}else{
    System.out.println("AAA");
}
  • 练习2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//由键盘输入三个整数分别存入变量num1、num2、num3,对它们进行排序(使用 if-else if-else),并且从小到大输出

public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
    System.out.print("请输入num1:");
    int num1 = s.nextInt();
    System.out.print("请输入num2:");
    int num2 = s.nextInt();
    System.out.print("请输入num3:");
    int num3 = s.nextInt();
    if(num1<=num2 && num1<=num3) {
        System.out.print(num1+",");
        if(num2<=num3) {
            System.out.print(num2+","+num3);
        }else {
            System.out.print(num3+","+num2);
        }
    }else if(num2<=num1 && num2<=num3){
        System.out.print(num2+",");
        if(num1<=num3) {
            System.out.print(num1+","+num3);
        }else {
            System.out.print(num3+","+num1);
        }
    }else if(num3<=num1 && num3<=num2){
        System.out.print(num3+",");
        if(num1<=num2) {
            System.out.print(num1+","+num2);
        }else {
            System.out.print(num2+","+num1);
        }
    }else {
        System.out.println("???"+num1+"<->"+num2+"<->"+num3+"???");
    }
}

第2节 switch…case

  • 语法结构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
switch(变量){  //变量的数据类型 byte short int char String(jdk1.7+) 枚举
	case 常量1:   //case的值必须是常量
		//代码
		break;    //break关键字用于执行完当前case之后跳出switch语句,如果不加代码继续向下执行.
	case 常量2:
		//代码
		break;
	case 常量3:
		//代码
		break;
	default:      //default可选
		//代码
		break;
}
  • 练习1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
String season = "summer";
switch (season) {
   	case "spring":
		System.out.println("春");
		break;
   	case "summer":
		System.out.println("夏");
		break;
	case "autumn":
		System.out.println("秋");
		break;
	case "winter":
		System.out.println("冬");
		break;
    default:
		System.out.println("季节输入有误");
		break;
}
  • 练习2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//键盘输入指定月份,打印该月份所属的季节。假如 :1,2,3春季4,5,6夏季7,8,9秋季10,11,12冬季
public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
    System.out.print("请输入月份:");
    int month = s.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;
    }
}

第三章 循环结构

1
2
3
4
5
6
7
8
9
10
11
12
在某些条件满足的情况下,反复执行特定代码的功能

循环语句的四个组成部分
	1. 初始化部分
	2. 循环条件部分
	3. 循环体部分
	4. 迭代部分

循环语句分类
	1. for 循环
	2. while 循环
	3. do/while 循环

第1节 for循环

  • 语法
1
2
3
4
5
6
for(初始化表达式①;布尔条件表达式②;条件修改表达式③){
    //循环体语句块④
}
//先执行①
//在执行②,如果条件成立执行④循环体,如果条件表达式不成立,那么循环结束
//在执行③,修改循环条件,然后接着执行②
  • 练习
1
2
3
4
5
6
7
//求1+2+...+100的和

int sum = 0;
for(int i=1; i<=100; i++) {
	sum += i;
}
System.out.println(sum);

第2节 while循环

  • 语法
1
2
3
4
5
[初始化语句]
while( 布尔值测试表达式){
    //语句或语句块;
	[更改语句;]
}
  • 练习
1
2
3
4
5
6
7
int sum = 0;
int i=1;
while(i<=100) {
	sum+=i;
   	i++;
}
System.out.println("sum=" + sum);

第3节 do…while循环

  • 语法
1
2
3
4
5
[初始化语句]
do{
	语句或语句块;
    [更改语句;]
}while(布尔值条件表达式); 
  • 练习
1
2
3
4
5
6
7
int sum = 0;
int i=1;
do{
	sum += i;
	i++;
}while(i<=100);
System.out.println("sum=" + sum);

第4节 循环练习

  • 练习1
1
//打印1~100之间所有是7的倍数的整数的个数及总和
  • 练习3
1
//输出所有的水仙花数,所谓水仙花数是指一个3位数,其各个位上数字立方和等于其本身.例如:153 = 1*1*1+3*3*3+5*5*5

第5节 补充循环

1
2
3
4
5
6
7
//设计一个无限循环(死循环)
while(true){
	//循环体
}
for(;;){
	//循环体
}

第6节 嵌套循环

1
2
将一个循环放在另一个循环体内,就形成了嵌套循环.嵌套循环就是把内层循环当成外层循环的循环体,for while do...while都可以嵌套
如果设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n次
  • 练习1
1
2
3
4
5
6
7
8
9
10
//九九乘法表
public static void main(String[] args) {
    for (int i = 1; i <= 9; i++) {
        for (int j = 1; j <= i; j++) {
            System.out.print(i+"*"+j+"="+i*j+"\t");
        }
        System.out.println();
    }

}
  • 练习2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//1—100之间的所有质数(质数是只能被1和他本身整除的数称为质数,1既不是质数也不是合数)
public static void main(String[] args) {
    for (int i = 2; i <= 100; i++) {
        boolean b = true;
        for (int j = 2; j < i; j++) {
            if(i%j==0) {
                b=false;
                break;
            }
        }
        if(b) {
            System.out.println(i);
        }
    }
}

第四章 特殊流程控制

第1节 break语句

1
2
break语句用于终止某个语句块的执行
break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块
  • 案例1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//单层循环
public static void main(String[] args) {
  for (int i = 1; i <= 100; i++) {
    if(i==5){
      break;//结束当前循环
    }
    System.out.println(i);
  }
}
//双层循环 break只能结束一层循环
public static void main(String[] args) {
  for (int j = 1; j <=5 ; j++) {
    System.out.println("j="+j);
    for (int i = 1; i <= 100; i++) {
      if(i==5){
        break;//结束当前循环
      }
      System.out.println("i="+i);
    }
  }
}
  • 案例2
1
2
3
4
5
6
7
8
9
10
11
12
//按照标记跳转
public static void main(String[] args) {
  ii:for (int i = 0; i < 5; i++) {
    System.out.println("i="+i);
    jj:for (int j = 0; j < 5; j++) {
      System.out.println("j="+j);
      if(j==1){
        break ii; //当j==1时结束ii标记的for循环
      }
    }
  }
}

第2节 continue语句

1
2
continue语句用于跳过某个循环语句块的一次执行
continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环
  • 案例1
1
2
3
4
5
6
7
8
9
//单层循环
public static void main(String[] args) {
  for (int i = 0; i < 10; i++) {
    if(i==1){
      continue;
    }
    System.out.println(i);
  }
}
  • 案例2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static void main(String[] args) {
  ii:for (int i = 0; i < 5; i++) {
    jj:for (int j = 0; j < 5; j++) {
      if(j==1){
        continue ii; //当j==1时跳过一次ii标记的for循环
      }
      System.out.println("j="+j);
    }
    System.out.println("i="+i);
  }
}
/*
  结果
  j=0
  j=0
  j=0
  j=0
  j=0
*/



版权声明:本文为Andrew_Chenwq原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。