分支结构(一)

if分支结构

  • if语句第一种格式:if

if (关系表达式) {
语句体;
}

  • 执行流程
    首先执行关系表达式,关系表达式的结果是一个boolean类型
    如果结果是true就执行语句体
    如果结果是false就不执行语句体
    最后都会执行到大括号之外
    代码演示

```java
/*1.判断一个字符类型char的变量*/
class Demo1{
	public static void main(String[] args){
		//定义一个字符类型char的变量
		char ch='B';
		/*
		代码结构安排的明明白白的!!!
		*/
		if(ch >= 'A' && ch <= 'Z') {
			System.out.println("这里是一个大写字母!!!");
		}
		System.out.println("大括号之外的语句!!!");
	}
}
  • if语句第二种格式:if else

if (关系表达式) {
语句体1;
} else {
语句体2;
}

  • 执行流程
    首先判断关系表达式看其结果是true还是false
    如果结果是true就执行语句体1
    如果结果是false就执行语句体2

对于if语句,有个很容易出现的逻辑错误,这个逻辑错误并不属于语法问题,但引起错误的可能性更大,如下程序

/*错误代码演示*/
public class IfErrorTest{
	public static void main(String[] args){
		int age = 45;
		if (age > 20){
			System.out.println("青年人");
		} else if (age >40 ) {
			System.out.println("中年人");
		} else if (age > 60) {
			System.out.println("老年人");
		}
	}
}
		

运行上面的程序,发现打印结果是 :青年人,而实际上希望45岁应判断为中年人-----这里出现了逻辑错误
因为age > 20 的范围大于 age >45,所以在执行if (age > 20)时,表达式是正确的,然后就输出青年人。

为了避免出现上面的错误,在使用if…else语句时有一条基本原则:总是优先把范围小的条件放在前面处理。如age > 60 和age >20两个条件,明显age > 60的范围更小,所以应该处理age > 60的情况
正确代码演示

public class IfTest{
	public static void main(String[] args){
		int age = 45;
		if (age > 60){
			System.out.println("老年人");
			
		} else if (age >40 ) {
			System.out.println("中年人");
		} else if (age > 20) {
			System.out.println("青年人");
		}
	}
}
		
  • if语句第二种格式:if…else if … else

if (判断条件1) {
执行语句1;
} else if (判断条件2) {
执行语句2
}

} else if (判断条件n) {
执行语句n;
} else {
执行语句n+1;
}

  • 执行流程
    首先判断关系表达式1看其结果是true还是false
    如果是true就执行语句体1
    如果是false就继续判断关系表达式2看其结果是true还是false
    如果是true就执行语句体2
    如果是false就继续判断关系表达式…看其结果是true还是false

    如果没有任何关系表达式为true,就执行语句体n+1.

代码演示

/*
学生成绩的等级划分:
	90 ~ 100 优秀
	80 ~ 90 良好
	70 ~ 80 中等
	60 ~ 70 及格
	60 以下 不及格
*/
class Demo10 {
	public static void main(String[] args) {
		/*
		成绩考虑存在0.5的情况,需要使用浮点类型数据
		这里采用float类型,这里赋值一个初值
		*/
		float score = 88.0F;
		/* 成绩等级判断 */
		if (score >= 90 && score <= 100) {
			System.out.println("优秀");
		} else if (score >= 80) {
			System.out.println("良好");
		} else if (score >= 70) {
			System.out.println("中等");
		} else if (score >= 60) {
			System.out.println("及格");
		} else {
			System.out.println("不及格");
		} 
	}
}

注意:
1、if 、else 、else if 后的条件要么是一个花括号括起来的代码块,则这个代码块整体作为条件执行体;要么是以分号为结束符的第一行语句,甚至可能是一个空语句(空语句是一个分号),那么就只是这条语句作为执行体。
2、使用 if …else语句时,一定要先处理包含范围更小的情况。

发布了7 篇原创文章 · 获赞 0 · 访问量 103

猜你喜欢

转载自blog.csdn.net/qq_43634768/article/details/105564598
今日推荐