前言:
众所周知,我们学习一门语言要明白其控制语句,控制语句分为:选择语句和循环语句。话不多说,开始我们今天的学习吧!
一、选择语句
1. if语句
语法格式:
1. if(){ 2. //括号中加判断条件,条件为Boolean形式 3. ; //此处加条件成立的执行语句; 4. } 5. else{ 6. ; 7. }
练习:判断一个数字是奇数还是偶数。
1. int num = 10; 2. if(num %2 == 1){ 3. System.out.println(num+"是奇数"); 4. } 5. else{ 6. System.out.println(num+"是偶数"); 7. }
悬垂 else 问题:
在我们写代码时,一定会遇到若干个if与若干个else情况。那么?我们该如何处理这种情况呢?很简单,一言以弊之:else与最近的if配对。
2.switch语句
语法格式:
1. switch()//表达式{ 2. case //常量值:{ 3. 4. break;//根据具体需求 5. } 6. default:{ 7. //都不满足是执行 8. } 9. 10. }
执行流程:
1. 先计算表达式的值
2. 和case依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到break时结束
3. 当表达式的值没有与所列项匹配时,执行default
注意:
多个case后的常量值不可以重复
switch的括号内只能是以下类型的表达式: 基本类型:byte、char、short、int,
注意不能是long类型 引用类型:String常量串、枚举类型
break 不要遗漏, 否则会失去 "多分支选择" 的效果
switch 不能表达复杂的条件
练习:根据 day 的值输出星期
1. int day = 1; 2. switch (day) { 3. case 1: { 4. System.out.println("星期一"); 5. break; 6. } 7. case 2: { 8. System.out.println("星期二"); 9. break; 10. } 11. case 3: { 12. System.out.println("星期三"); 13. break; 14. } 15. case 4:{ 16. System.out.println("星期四"); 17. break; 18. } 19. case 5:{ 20. System.out.println("星期五"); 21. break; 22. } 23. case 6:{ 24. System.out.println("星期六"); 25. break; 26. } 27. case 7:{ 28. System.out.println("星期日"); 29. break; 30. } 31. default:{ 32. System.out.println("输入错误"); 33. break; 34. } 35. } 36.
二、循坏语句
1.while 循环
语法格式:
1. while(){//循坏条件 2. ;//循环语句 3. }
循环条件为 true, 则执行循环语句; 否则结束循环。
注意事项
1. 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句。 建议还是加上 { }
2. 和 if 类似, while 后面的 { 建议和 while 写在同一行。
3. 和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行。
练习:计算 1! + 2! + 3! + 4! + 5!
1. int num = 5; 2. int sum = 0; 3. int count = num; 4. int ret = 1; 5. while(count >0){ 6. num = count; 7. ret = 1; 8. while(num >0 ){ 9. ret *= num ; 10. num--; 11. } 12. count--; 13. sum +=ret; 14. } 15. System.out.println(sum);
2.for循环
语法格式:
1. for(//条件一;条件二;条件三){ 2. ;//循环条件 3. }
条件1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次
条件2: 循环条件,满则循环继续,否则循环结束
条件3: 循环变量更新方式
注意事项
1. 和 if 类似, for 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句。 建议还是加上 { }
2. 和 if 类似, for 后面的 { 建议和 while 写在同一行。
3. 和 if 类似, for 后面不要多写 分号, 否则可能导致循环不能正确执行。
4. 和while循环一样,结束单趟循环用continue,结束整个循环用break。
练习: 计算 1! + 2! + 3! + 4! + 5!
1. int sum = 0; 2. for(int i = 1;i <= 5;i++) { 3. int ret = 1; 4. for (int j = 1; j <= i; j++) { 5. ret *= j; 6. } 7. sum +=ret; 8. } 9. System.out.println(sum);
3.do-while循环
语法格式:
1. do{ 2. 循环语句; 3. }while(循环条件);
先执行循环语句, 再判定循环条件,循环条件成立则继续执行,否则循环结束。
练习:打印 1 - 10
1. int num = 1; 2. do { 3. System.out.println(num); 4. num++; 5. } while (num <= 10);
三、猜数字游戏
我们对于上述结构了解的差不多了,接下来,我们来做一个简单的小项目来巩固一下吧。
补充一个知识点:Random方法(大家可简单理解为:这调用了一个C语言的函数)。调用该方法可生成随机数字。使用方法如下:
1. Random random = new Random(); // 默认随机种子是系统时间 2. int toGuess = random.nextInt(100);//表示1-100
用该方法会自动导包。
接下来自己实现一下吧!参考代码如下:
1. import java.util.Random; 2. import java.util.Scanner;; 3. class Test { 4. public static void main(String[] args) { 5. Random random = new Random(); // 默认随机种子是系统时间 6. Scanner sc = new Scanner(System.in); 7. int toGuess = random.nextInt(100); 8. // System.out.println("toGuess: " + toGuess); 9. while (true) { 10. System.out.println("请输入要输入的数字: (1-100)"); 11. int num = sc.nextInt(); 12. if (num < toGuess) { 13. System.out.println("低了"); 14. } else if (num > toGuess) { 15. System.out.println("高了"); 16. } else { 17. System.out.println("猜对了"); 18. break; 19. } 20. } 21. sc.close(); 22. } 23. }
完!