流程控制语句(一)选择结构——if语句、switch语句

结构控制(structure control)就是一种程序运行的逻辑,即用来实现对程序流程的选择、循环、转向和返回等进行控制。Java语言共有三种流程控制结构,分别是顺序控制结构、分支控制结构和循环控制结构。下面我们来详细介绍

顺序控制结构

执行流程:从上往下,依次执行。
如下代码,一次执行输出结果为Hello World

public class Test {
 	public static void main(String[] args) {
  		System.out.print("Hello");
  		System.out.println(" World");
 	}
}

分支控制结构

if语句

if语句有三种语法格式,每一种格式都有它自身的特点。

1、if语句流程控制语句(一)选择结构——if语句、switch语句_第1张图片

一个基本的if语句由一个关键字开头,跟上在括号里的一个表示条件的逻辑表达式,然后是一对大括号“{}”之间的若干条语。如果表示条件的逻辑表达式的结果为true,那么就执行后面跟着的这对大括号中的语句,否则就跳过这些语句不执行,而继续下面的其他语句。以下为代码实现

public class Test {
 	public static void main(String[] args) {
   		int a = 1;
 		if(a>0) {
    			System.out.println("Hello");//输出结果为Hello
   		}
 	}
 }	

若执行的语句只有一条就不需要大括号,可以直接写这个语句,但语句结尾要有分号。(建议加上大括号养成好习惯,使代码易于阅读)
if语句这一行结束的时候并没有表示语句结束的“;”。而后面的赋值语句写在if的下一行,并且缩进了,在这一行结束的时候有一个表示语句结束的“;”。表明这条语句是if语句的一部分,if语句拥有和控制这条赋值语句,决定它是否被执行。

public class Test {
 	public static void main(String[] args) {
 		int a = 1;
 		If(a>0)
			a+=1;//输出结果为2
 	}
}

2、 if…else 语句

有的时候我们希望在条件成立的时候做一件事情,而在条件不成立的时候做另外一件事情。这可以在if语句后面跟上一个else子句,形成一个if-else语句。
流程控制语句(一)选择结构——if语句、switch语句_第2张图片

如下代码,条件成立输入Hello,条件不成立输入World。

public class Test {
 	public static void main(String[] args) {
	 	int a = 1;
		if(a<0) {
		 	System.out.println("Hello");
		}else{
			System.out.println("World");
		 }
	 }
}

3、if…else if…else语句

if…else if…else语句用于对多个条件进行判断,进行多种不同的处理。
if (判断条件1) {
执行语句1
} else if (判断条件2) {
执行语句2
}
如下对学生成绩划分的代码:

public class Test {
	 public static void main(String[] args) {
		int grade = 100;
		if(grade>90) {
		   	System.out.println("A");
		}else if(grade>80){
		   	System.out.println("B");
		}else if(grade>70){
		   	System.out.println("C");
		}else if(grade>60){
		   	System.out.println("D");
	  	}
	}
}

上述代码中,定义了学生成绩grade为100。它满足第一个判断条件grade>90,不会执行后续的判断条件,因此会打印“该成绩的等级为A”。

4、嵌套的判断

当if的条件满足或者不满足的时候要执行的语句也可以是一条if或if-else语句,这就是嵌套的if语句。如下代码:

public class Test {
	 public static void main(String[] args) {
	  	int a = 10;
	  	if(a>0) {
	   		if(a>10) {
	    			System.out.println("Hello");
	   		}
	  	 	System.out.println("World");//输出结果为World
  		}
 	}
}

Switch-case语句

switch 条件语句也是一种很常用的选择语句,它和if条件语句不同,它只能针对某个表达式的值作出判断,从而决定程序执行哪一段代码。
代码格式:
switch (表达式){
case value:
执行语句1
break;
case value:
执行语句2
break;
......
case value:
执行语句n
break;
default:
执行语句n+1
break;
}

特点:

1、控制表达式只能是整数型的结果

2、switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。常量可以是常数,也可以是常数计算的表达式。

3、switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。

4、当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。

5、如果所有的case都不匹配,那么就执行default后面的语句;如果没有default,那么就什么都不做。

6、Switch语句可以看作是一种基于计算的跳转,计算控制表达式的值后,程序会跳转到相匹配的case(分支标号)处。分支标号只是说明switch内部位置的路标,在执行完分支中的最后一条语句后,如果后面没有break,就会顺序执行到下面的case里去,直到遇到一个break,或者switch结束为止。

如下代码实现:

public class Test {
	 public static void main(String[] args) {	
		int grade = 5;
		switch(grade) {
		  	case 1:System.out.println("A");
		  	break;
		  	case 2:System.out.println("B");
		  	break;
		  	case 3:System.out.println("C");
		  	break;
		  	case 4:System.out.println("D");
		  	break;
		  	default:System.out.println("不及格");
	  		break;//代码输出结果为不及格,遇到break跳出switch语句。
	  	}
	 }
}

下一篇:

流程控制语句(二)循环结构 while、do…while 及for

你可能感兴趣的:(Java)