组团学

流程控制-if

阅读 (233883)

1、if语句

1.1、单条件判断-(if)

满足if条件即执行,不满足不执行。

1.1.1、if语句的语法格式

if (关系表达式){

​ 代码块

}

1.1.2、执行流程

首先判断关系表达式看其结果是true还是false,如果是true就执行语句体,如果是false就不执行语句体

1.1.3、流程图

image20191203182032893.png

1.1.4、案例

如年龄大于18岁可以注册婚恋网站

/*
	选择结构if语句的第一种格式,有可能一句话都不打印 
	格式:
	if(条件语句){
	code;
	...
	} 
	执行步骤:
	首先判断条件语句是否成立
	true:执行if{}中的代码
	false:不执行if{}中的代码	
	*/
import java.util.Scanner;
public class IfDemo01{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入您的年龄: ");
		int age = sc.nextInt();
		if(age >= 18){
			System.out.println("年龄大于等于18岁,可以注册百合网,美女在等着你");
		}
	  if(age < 18){
	   System.out.println("年龄小于18岁,不可以注册百合网,注册会员,可以放宽年龄限制");
		}
	}
} 

运行结果:

image20191204101438145.png

image20191204101507604.png

1.2、互斥条件判断-(if-else-)

满足条件执行if语句体,不满足执行else语句体。

1.2.1、if-else-语句语法格式

if(关系表达式) {

​ 语句体1;

}else {

​ 语句体2;

}

1.2.2、执行流程

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

1.2.3、流程图

image20191203182544972.png

1.2.4、案例

如年龄大于18岁可以注册婚恋网站,小于18岁不可以注册。

/*
	选择结构if语句的第二种格式:总会打印一句话 
	格式:
	if(条件语句){
	执行语句1;
	...
	}else{
	执行语句2;
	...
	} 
	执行流程:
	首先判断条件语句是否成立
	true:执行if{}中的执行语句1
	false:执行else{}中的执行语句2
	*/
import java.util.Scanner;
public class IfDemo02{
	    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您的年龄: ");
        int age = sc.nextInt();
        if(age >= 18){
            System.out.println("年龄大于等于18岁,可以注册百合网,美女在等着你");
        }else{
            System.out.println("年龄小于18岁,不可以注册百合网,注册会员,可以放宽年龄限制");
        }
    }
} 

image20191204102540913.png

image20191204102643413.png

1.3、多条件判断(if-elseif-else)

在多个条件中选择满足条件的if语句体执行。

1.3.1、if-elseif-else-语句的语法格式

if (判断条件1) {

​ 执行语句1

} else if (判断条件2) {

​ 执行语句2

}

else if (判断条件n) {

​ 执行语句n

} else {

​ 执行语句n+1

}

1.3.2、执行流程

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

…,

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

1.3.3、流程图

image20191203182920479.png

1.3.4、案例

例如,对一个学生的考试成绩进行等级的划分;

如果分数大于等于90分,小于等于100分等级为优;如果分数大于等于80分,小于90分级为良;如果分数大于等于70分,小于80分级为中;如果分数大于等于60分,小于70分等级为及格;60以下为不及格。

/*
	选择结构if语句的第三种格式:终究会打印一个结果
 
	格式:
	if(条件1){
	条件1成立执行
	}else if(条件2){
	条件1不成立,条件2成立执行
	}
	.....
	else if(条件n){
	条件1,条件2...都不成立,条件n成立执行
	}else{
	所有条件都不满足,执行
	} 
	需求:根据成绩判断成绩等级
	90-100分:优
	80-90分:良
	70-80分:中
	60-70分:及格
	0-60分:不及格
	其它成绩:非法成绩
	变量的作用域:在自己所在的{}内有效
	*/
public class IfDemo03{
	public static void main(String[] args){
	int score = 55;
	if(score >=90 && score <=100){
		System.out.println("成绩是"+score+",等级为优!");
	}else if(score >=80 && score <90){
		System.out.println("成绩是"+score+",等级为良!");
	}else if(score >=70 && score <80){
		System.out.println("成绩是"+score+",等级为中!");
	}else if(score >=60 && score <70){
		System.out.println("成绩是"+score+",等级为及格!");
	}else if(score >=0 && score <60){
		System.out.println("成绩是"+score+",等级为不及格!");
	}else{
		System.out.println("成绩是"+score+",非法成绩!");
	}
	}
}

运行结果:

image20191204103001409.png

1.4、多层条件判断(嵌套条件)(if-> if)

在复杂的业务逻辑中,可以使用多层的条件判断代码是否执行。

1.4.1、格式

if(第一层条件){

 if(第二层条件){

	真正运行逻辑

​ }

}

1.4.2、案例

如:60分以下的同学不及格重考,60分以上的同学不需要重考,这个区间又可以分为:优秀、良好、及格三个等级。

/*
	多层if语句:if语句嵌套
	格式:
	if(条件语句){
	if(条件语句){
	code;
	...
	}
	}
 
	需求:
	成绩>= 60
	打印成绩合格,可以升级
	90-100分:优
	80-90分:良
	70-80分:中
	60-70分:及格
	成<60
	打印成绩不及格,需要补考
	*/
import java.util.Scanner;
public class IfDemo04{ 
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入您的成绩: ");
		int score = sc.nextInt();
		if(score >= 60 && score <=100){
			System.out.println("成绩合格,可以升级");
			if(score >=90 && score <=100){
				System.out.println("成绩是"+score+",等级为优!");
			}else if(score >=80 && score <90){
				System.out.println("成绩是"+score+",等级为良!");
			}else if(score >=70 && score <80){
				System.out.println("成绩是"+score+",等级为中!");
			}else{
				System.out.println("成绩是"+score+",等级为及格!");
			}
		}else if(score >=0 && score < 60){
			System.out.println("成绩不及格,需要补考");
		}else{
			System.out.println("非法成绩");
		}
			System.out.println("程序结束");
	}
}

运行结果:

image20191204103625464.png

需要 登录 才可以提问哦