第一章 顺序结构
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 */ |