JAVA基础5:分支语句

1.流程控制

1)流程控制语句分类

  • 顺序结构
  • 分支结构(if,switch)
  • 循环结构(for,while,do...while)

2.顺序结构

顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。

顺序结构的执行流程图:

JAVA基础5:分支语句_第1张图片

2.if语句

1)if语句格式1

格式:

if(关系表达式){

语句体;

}

执行流程:

①首先计算关系表达式的值

②如果关系表达式的值为true就执行语句体

③如果关系表达式的值为false就不执行语句体

④继续执行后面的语句内容

/*
	if语句格式1:
	格式:
		if(关系表达式){

			语句体;

		}

	执行流程:

		①首先计算关系表达式的值

		②如果关系表达式的值为true就执行语句体

		③如果关系表达式的值为false就不执行语句体

		④继续执行后面的语句内容
*/
public class IfDemo{
	public static void main(String[] args){
		System.out.println("开始");
		
		//定义两个变量
		int a = 10;
		int b = 20;
		
		//需求:判断a和b的值是否相等,如果相等,就在控制台输出:a等于b。
		if(a == b){
			System.out.println("a等于b");
		}
		
		//需求:判断a和c的值是否相等,如果相等,就在控制台输出:a等于c。
		int c = 10;
		if(a == c){
			System.out.println("a等于c");
		}
		
		System.out.println("结束");
		
	}
}

2)if语句格式2

格式:

if(关系表达式){

语句体1;

}else{

语句体2;

}

执行流程:

①首先计算关系表达式的值

②如果关系表达式的值为true就执行语句体1

③如果关系表达式的值为false就执行语句体2

④继续执行后面的语句内容

JAVA基础5:分支语句_第2张图片

/*
	if语句格式2:
	格式:

	if(关系表达式){

		语句体1;

	}else{

		语句体2;

	}

	执行流程:

		①首先计算关系表达式的值

		②如果关系表达式的值为true就执行语句体1

		③如果关系表达式的值为false就执行语句体2

		④继续执行后面的语句内容
*/
public class IfDemo{
	public static void main(String[] args){
		System.out.println("开始");
		
		//定义两个变量
		int a = 10;
		int b = 20;
		b = 5;
		
		//需求:判断a是否大于b;如果是,在控制台输出:a的值大于b;如果不是,在控制台输出:a的值不大于b。
		if(a > b){
			System.out.println("a的值大于b");
		}else{
			System.out.println("a的值不大于b");
		}
		
		System.out.println("结束");
		
	}
}

例子:判断奇偶数

/*
	奇偶数
	需求:
		任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数。
*/
import java.util.Scanner;
public class IfDemo{
	public static void main(String[] args){
		System.out.println("请输入一个整数:");
		Scanner sc = new Scanner(System.in);
		int number = sc.nextInt();
		if( number % 2 == 0){
			System.out.println(number + "是偶数");
		}else{
			System.out.println(number + "是奇数");
		}
		
	}
}

3)if语句格式3

格式:

if(关系表达式1){

语句体1;

}else if(关系表达式2){

语句体2;

}

...

else{

语句体n+1;

}

执行流程:

①首先计算关系表达式的值

②如果关系表达式的值为true就执行语句体1;如果值为false就计算关系表达式2的值

③如果关系表达式的值为true就执行语句体2;如果值为false就计算关系表达式3的值

④...

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

JAVA基础5:分支语句_第3张图片

/*
	if语句格式3:
	格式:

	if(关系表达式1){

		语句体1;

	}else if(关系表达式2){

		语句体2;

	}

	...

	else{

		语句体n+1;

	}

	执行流程:

		①首先计算关系表达式的值

		②如果关系表达式的值为true就执行语句体1;如果值为false就计算关系表达式2的值

		③如果关系表达式的值为true就执行语句体2;如果值为false就计算关系表达式3的值

		④...

		⑤如果没有任何关系表达式为true,就执行语句n+1。
*/
import java.util.Scanner;
public class IfDemo{
	public static void main(String[] args){
		System.out.println("开始");
		
		//需求:键盘录入一个星期数(1,2,...7),输出对应的星期一,星期二,...星期日
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入一个星期数(1-7):");
		int week = sc.nextInt();
		if( week == 1){
			System.out.println("星期一");
		}else if( week == 2){
			System.out.println("星期二");
		}else if( week == 3){
			System.out.println("星期三");
		}else if( week == 4){
			System.out.println("星期四");
		}else if( week == 5){
			System.out.println("星期五");
		}else if( week == 6){
			System.out.println("星期六");
		}else{
			System.out.println("星期日");
		}
		
		System.out.println("结束");
		
	}
}

例子:考试奖励

/*
	考试奖励
	需求:
		小明快要期末考试了,小明爸爸会根据小明的不同考试成绩送他不同的礼物,假如你可以控制小明的分数,
		请用程序实现小明到底该获得什么样的礼物,并在控制台输出。
	奖励:
		95-100	山地自行车一辆
		90-95	游乐场玩一次
		80-89	变形金刚玩具一个
		80以下	胖揍一顿
*/
import java.util.Scanner;
public class IfDemo{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入一个分数:");
		int score = sc.nextInt();
		/*
		if( score >= 95 && score <= 100){
			System.out.println("奖励:山地自行车一辆");
		}else if( score >= 90 && score < 95){
			System.out.println("奖励:游乐场玩一次");
		}else if( score >= 80 && score < 90){
			System.out.println("奖励:变形金刚玩具一个");
		}else{
			System.out.println("奖励:胖揍一顿");
		}
		*/
		//数据测试:正确数据,边界数据,错误数据
		if( score >= 100 || score < 0){
			System.out.println("你输入的分数有误");
		}else if( score >= 95 && score <= 100){
			System.out.println("奖励:山地自行车一辆");
		}else if( score >= 90 && score < 95){
			System.out.println("奖励:游乐场玩一次");
		}else if( score >= 80 && score < 90){
			System.out.println("奖励:变形金刚玩具一个");
		}else{
			System.out.println("奖励:胖揍一顿");
		}
	}
}

注意事项:正确数据,边界数据,错误数据

3.switch语句

格式:

switch(表达式){

        case值1:

                       语句体1;

                        break;

        

        case值2:

                       语句体1;

                        break;

        ...

        

        default:

                       语句体n+1;

                        [break;]

}

格式说明:

  • 表达式:取值为byte、short、int、char、JDK5以后可以是枚举,JDK7以后可以是String.
  • case:后面跟的是要和表达式进行比较的值。
  • break:表示中断,结束的意思,用来结束switch语句。
  • default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。

执行流程:

①首先计算表达式的值

②依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束

③如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后程序结束掉。

/*
	Swictch语句
*/
import java.util.Scanner;
public class SwitchDemo{
	public static void main(String[] args){
		System.out.println("开始");
		
		//需求:键盘录入一个星期数(1-7),输出对应的星期一,星期二,...星期日
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入一个星期数(1-7):");
		int week = sc.nextInt();
		
		switch(week){
			case 1:
			System.out.println("星期一");
			break;
			case 2:
			System.out.println("星期二");
			break;
			case 3:
			System.out.println("星期三");
			break;
			case 4:
			System.out.println("星期四");
			break;
			case 5:
			System.out.println("星期五");
			break;
			case 6:
			System.out.println("星期六");
			break;
			case 7:
			System.out.println("星期日");
			break;
			default:
				System.out.println("你输入的星期数有误");
				break;
		}
		System.out.println("结束");
		
	}
}

例子:春夏秋冬

/*
	春夏秋冬
	需求:
		一年有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出。
		春:3,4,5
		夏:6,7,8
		秋:9,10,11
		冬:1,2,12
*/
import java.util.Scanner;
public class SwitchDemo{
	public static void main(String[] args){
		System.out.println("开始");
		
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入一个月份:");
		int week = sc.nextInt();
		/*
		switch(week){
			case 1:
				System.out.println("冬天");
				break;
			case 2:
				System.out.println("冬天");
				break;
			case 3:
				System.out.println("春天");
				break;
			case 4:
				System.out.println("春天");
				break;
			case 5:
				System.out.println("春天");
				break;
			case 6:
				System.out.println("夏天");
				break;
			case 7:
				System.out.println("夏天");
				break;
			case 8:
				System.out.println("夏天");
				break;
			case 9:
				System.out.println("秋天");
				break;
			case 10:
				System.out.println("秋天");
				break;
			case 11:
				System.out.println("秋天");
				break;
			case 12:
				System.out.println("冬天");
				break;
			default:
				System.out.println("你输入的月份有误");
				break;
		}
		*/
		//case穿透
		switch(week){
			case 1:
			case 2:
			case 12:
				System.out.println("冬天");
				break;
			case 3:
			case 4:
			case 5:
				System.out.println("春天");
				break;
			case 6:	
			case 7:	
			case 8:
				System.out.println("夏天");
				break;
			case 9:
			case 10:
			case 11:
				System.out.println("秋天");
				break;
			default:
				System.out.println("你输入的月份有误");
		}
		System.out.println("结束");
		
	}
}

注意事项:在switch语句中,如果case控制的语句体后面不写break,将出现穿透现象,在不判断下一个case值的情况下,向下运行,直到遇到break,或者整体switch语句结束。

你可能感兴趣的:(Java,java,开发语言)