码迷,mamicode.com
首页 > 其他好文 > 详细

流程控制--分支结构

时间:2016-05-12 13:23:31      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:


Java提供了两种常见的分支控制结构,if语句和switch语句。

其中if语句使用boolean表达式或boolean值作为分支条件来进行分支控制

switch语句则用于对多个整形值进行匹配,从而实现分支控制


if条件语句

if语句使用boolean表达式或boolean值作为分支条件来进行分支控制。具体有如下3种形式:

1),if(){}

2),if(){}else{}

3),if(){}else if(){}else{}

如果if,else if,else后的代码块只有一行语句时,则可以省略花括号,因为单行语句本身就是一个整体,无须用花括号来把他们定义成一个整体。

注意:if,else,else if后的条件执行体要么是一个花括号括起来的代码块,则这个代码块整体作为条件执行体,要么是以分号为结束符的一行语句,甚至可能是一个空语句。

空语句就是一个分号,那么就只是这条语句作为条件执行体。如果省略了if条件后条件执行体的花括号,那么if条件只控制到紧跟该条件语句的第一个分号处。

使用if语句个人建议:

1),就我个人编码风格来说,我不建议省略花括号,即使执行体只有一条语句

2),使用if...else语句时,一定要先处理包含范围更小的情况,一定要先处理经常会发生的分支

对于任何的if else语句,表面上看起来,else后没有任何条件,这是错误的想法,else的含义是“否则”,else本身就是一个条件。else的隐含条件就是对前面条件取反

public static void main(String[] args)
	{
		// 下面的代码控制台永远输出-->这个分支屏蔽了下面所有的分支了呢
		int age = 50;
		if (age > 10)
		{
			System.out.println("这个分支屏蔽了下面所有的分支了呢");
		}
		else if (age > 30)
		{
			System.out.println("这个分支永远不会被执行,永远永远");
		}
	}



switch分支语句

switch语句由一个控制表达式和多个case标签组成,和if语句不同的是,switch语句后面的控制表达式的数据类型只能是byte,short,char,int四种整数类型,枚举类型和

Java.lang.String类型,不能是boolean类型。

switch语句后面的控制表达式支持字符串类型,是从Java7开始的,建议使用Java8,Java8是Java在5之后的另外一个里程碑版本。

switch语句往往需要在case标签后紧跟一个代码块,case标签作为这个代码块的标识。switch语句的语法格式如下:

switch(expression)
{
	case condition1:
	{
		statement(s1)
		break;
	}
	case condition2:
	{
		statement(s2)
		break;
	}
	...
	case conditionN:
	{
		statement(sN)
		break;
	}
	default:
	{
		statement(s)
	}
}

switch语句中最后的default,意思就是表达式的值和前面所有的case中表达式的值都不相同。举个例子:

public static void main(String[] args)
	{
		String season = "夏天";
		switch (season)
		{
		case "春天":
		{
			System.out.println("这里是春天吆");
			break;
		}
		case "夏天":
		{
			System.out.println("这里是夏天吆");
			break;
		}
		default:
		{
			System.out.println("只能是秋天或者冬天啦");
		}
		}
	}

使用switch语句时,有两个值得注意的地方:

1),switch语句后的表达式的数据类型只能是byte,short,int,char4种整数类型,String和枚举类型

2),如果省略了case后代码块的break,将引入一个陷阱。因为这个限制,我平时很少使用switch语句,建议大家也最好别多使用,用if+else足够

public static void main(String[] args)
	{
		// 下面的代码演示,代码执行块中少了break的编码陷阱。
		// 第一个case之后所有的分支都会被执行,不建议多使用switch语句
		String season = "LinkinPark";
		switch (season)
		{
		case "NightWish":
		{
			System.out.println("这里的语句不会被执行");
		}
		case "LinkinPark":
		{
			System.out.println("这里的语句会被执行");
		}
		default:
		{
			System.out.println("这里的语句也会被执行");
		}
		}
	}



流程控制--分支结构

标签:

原文地址:http://blog.csdn.net/u011794238/article/details/51364320

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!