第三章:选择结构与分支结构

  • 时间:
  • 浏览:
  • 来源:互联网

JavaSE学习历程

第一章:Java初识
第二章:Java语言基础

第三章:选择结构与分支结构

0 流程图

用于逐步解决指定问题的步骤和方法的图形表示。

流程图基本符号:

在这里插入图片描述

流程图示例:

在这里插入图片描述

1 选择结构

1.1 基本if选择结构

语法:
if(布尔表达式){
//代码块
}

执行流程:

对布尔表达式进行判断。

结果为true,则先执行代码块,再执行后续代码。
结果为false,则跳过代码块,直接执行后续代码。

示例:判断成绩,输出是否位满分

package com.xx;

import java.util.Scanner;

/**  
 * @Title: If.java
 * @Description: TODO判断成绩,输出是否位满分
 * @since JDK1.8
 */
public class If {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//1.声明Scanner变量
		Scanner input = new Scanner(System.in);
		System.out.println("请输入您的分数(0~100)");
		//2.获取输入的信息
		int grade = input.nextInt();
		if(grade == 100) {
			System.out.println("成绩满分");
		}
		//3.关闭资源
		input.close();
	}
}

1.2 if else选择结构

语法:

if(布尔表达式){
//代码块1
}else{
//代码块2
}

执行流程:

对布尔表达式进行判断。

结果为true,则先执行代码块1,再退出整个结构,执行后续代码。
结果为false,则先执行代码块2,再退出整个结构,执行后续代码。

1.3 多重if选择结构

语法:
if(布尔表达式1){
//代码块1
}else if(布尔表达式2){
//代码块2
}else if(布尔表达式3){
//代码块3
}else{
//代码块4
}

注意:相互排斥,有一个为true,其他均不再执行。
适用区间判断,但要保证条件顺序(从大到小、从小到大)。

1.4 嵌套if选择结构

语法:
if(外层表达式){
if(内层表达式){
//内层代码块1
}else{
//内层代码块2
}
}else{
//外层代码块
}=0

执行流程:

  • 当外层条件满足时,再判断内层条件。

注意:

  • 一个选择结构中,可嵌套另一个选择结构。
  • 嵌套格式正确的情况下,支持任意组合。

2 switch分支结构

2.1 分支结构

语法:
switch(变量 | 表达式){
case 值1:
逻辑代码1;
case 值2:
逻辑代码2;
case 值n:
逻辑代码n;
default:
未满足时的逻辑代码;
}

可判断的类型:

  • byte、short、int、char、String(JDK7+)

执行流程:

  • 如果变量中的值等于值1,则执行逻辑代码1。
  • 如果变量中的值等于值2,则执行逻辑代码2。
  • 如果变量中的值等于值n,则执行逻辑代码n。
  • 如果变量中的值没有匹配的case值时,执行default中的逻辑代码。

注意:当匹配的case执行后,不会自动退出整个结构,而是继续向下执行。

  • 根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入相应case结构中,调用其执行语句。
  • 当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case结构末尾结束为止。
  • break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构
  • switch结构中的表达式,只能是如下的6种数据类型之一:
  • byte 、short、char、int、枚举类型(JDK5.0新增)、String类型(JDK7.0新增)
    • case 之后只能声明常量。不能声明范围。
  • break关键字是可选的。
  • default:相当于if-else结构中的else.
    • default结构是可选的,而且位置是灵活的。
  • 如果switch-case结构中的多个case的执行语句相同,则可以考虑进行合并。

break关键字可在匹配的case执行后,跳出整个结构。

switch 循环结构适用等值判断。

示例:输入数字1~7判断今天是星期几,其它数字提示非法

package com.xx;

import java.util.Scanner;

/**  
 * @Title: Switch.java
 * @Description: TODO
 * @since JDK1.8
 */
public class Switch {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner input = new Scanner(System.in);
		System.out.println("请输入数字:1~7");
		int day = input.nextInt();
		switch(day) {
		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;
		}
		input.close();
	}

}

Switch选择结构是以等值判断,在条件不是区间式的时候使用switch更方便高效。
当表达式都不是switch中的value中的值,就会执行default:的语句

if结构和switch结构的区别

相同点:

  • 都可以实现多分支结构。

不同点:

  • Switch只能处理等级的条件判断,而且条件是整数或者字符等变量的等值判断。
  • (switch在JDK0.7以后才能进行字符串的判断)
  • If结构特别是个某个变量处于某个区间的情况(处理区间和等值)。

3 变量

3.1 全局变量(外部变量)

概念:全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。
作用范围:可以被本程序所有对象或函数引用。

3.2 局部变量(内部变量)

概念:声明在方法内部的变量,必须先赋值再使用。
作用范围:定义行开始到所在的代码块结束。

注意:多个变量,在重合的作用范围内,不可出现重名(命名冲突)。

本文链接http://www.dzjqx.cn/news/show-617080.html