1. 顺序结构
顺序结构比较简单,就是按照代码书写的顺序一行一行执行。
例如:
System.out.println("aaa"); System.out.println("bbb"); System.out.println("ccc");
这段代码的运行结果就是从上至下输出:
aaa bbb ccc
如果调整代码的书写顺序, 则执行顺序也发生变化:
System.out.println("aaa"); System.out.println("ccc"); System.out.println("bbb")
🍤 输出:
aaa ccc bbb
2. 分支结构
2.1 if 语句
语法格式1:
if(布尔表达式){ // 语句 }
如果布尔表达式结果为 true,执行 if 中的语句,否则不执行。
比如:小明,如果这次考试考到90分或以上,给你奖励一个鸡腿。
public static void main(String[] args) { int score = 92; if(score >= 90){ System.out.println("吃个大鸡腿!!!"); } }
🍤 运行结果:
语法格式2:
if(布尔表达式){ // 语句1 }else{ // 语句2 }
如果布尔表达式结果为 true,则执行 if 中语句,否则执行 else 中语句。
比如:小明,如果这次考到90分以上,给你奖励一个大鸡腿,否则奖你一个大嘴巴子。
public static void main(String[] args) { int score = 89; if(score >= 90){ System.out.println("吃个大鸡腿!!!"); }else{ System.out.println("挨大嘴巴子!!!"); } }
🍤 运行结果:
语法格式3:
if(布尔表达式1){ // 语句1 }else if(布尔表达式2){ // 语句2 }else{ // 语句3 }
表达式1成立,执行语句1,否则表达式2成立,执行语句2,否则执行语句3。
比如:我们定义一个分数区间来划分学生的成绩
分数在 [90, 100] 之间的,为优秀
分数在 [80, 90) 之前的,为良好
分数在 [70, 80) 之间的,为中等
分数在 [60, 70) 之间的,为及格
分数在 [ 0, 60) 之间的,为不及格
错误数据
代码实现:
public static void main(String[] args) { int score=88;//学生成绩 //判断 if(score >= 90){ System.out.println("优秀"); }else if(score >= 80 && score < 90){ System.out.println("良好"); }else if(score >= 70 && score < 80){ System.out.println("中等"); }else if(score >= 60 && score < 70){ System.out.println("及格"); }else if(score >= 0 && score < 60){ System.out.println("不及格"); }else{ System.out.println("错误数据"); } }
🍤 运行结果:
实例1:判断一个数字是奇数还是偶数
首先需要知道判断奇偶的规则。数学上,我们判断奇偶数是以该数是否可以整除 2 为根据的,一个数能够整除 2,即计算的余数为 0,当除以 2 后的余数为 0 时,就说明了该数为偶数,否则是奇数。
我们已经了解判断奇偶数的方法,尝试写出代码:
public static void main(String[] args) { int num = 10; if (num % 2 == 0) { System.out.println("num 是偶数"); } else { System.out.println("num 是奇数"); } }
🍤 运行结果:
实例2:判断一个数字是正数,负数,还是零
大于 0 是正数,小于 0 是负数,所以这里只需要判断是大于、小于还是等于。
public static void main(String[] args) { int num = 10; if (num > 0) { System.out.println("正数"); } else if (num < 0) { System.out.println("负数"); } else { System.out.println("0"); } }
🍤 运行结果:
实例3:判断一个年份是否为闰年
普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。
public static void main(String[] args) { int year = 2000; if (year % 100 == 0) { // 判定世纪闰年 if (year % 400 == 0) { System.out.println("是闰年"); } else { System.out.println("不是闰年"); } } else { // 普通闰年 if (year % 4 == 0) { System.out.println("是闰年"); } else { System.out.println("不是闰年"); } } }
🍤 运行结果:
注:
- 分号问题
这段代码的结果会是什么?
public static void main(String[] args) { int x = 20; if (x == 10); { System.out.println("hehe"); } }
🍤 运行结果:
有人可能会好奇,为什么这里 x 明明是20,不等于10啊,怎么还会打印 hehe 。
仔细观察就会发现:if 语句后跟有一个分号,这里导致分号成为了 if 语句的语句体,而 { } 中的代码已经成为了和一个 if 无关的代码块,所以会打印出来。
🍩分号代表语句的结束