栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

再会Java选择结构

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

再会Java选择结构

再会Java选择结构 为什么使用switch选择结构

举例:比如计算机大赛:
如果获得第一名,奖励一个mac电脑;
如果获得第二名,奖励一个键鼠套装;
如果获得第三名,奖励一个1T移动硬盘;
其他名次,则没有奖励;
分析:这个问题可以用多重if选择结构来解决;

public static void main(String[] args){
	int rankings = 3;
	if(rankings=1){
		System.out.println("奖励一个mac电脑");
	}else if(rankings=2){
		System.out.println("奖励一个键鼠套装");
	}else if(rankings=3){
		System.out.println("奖励一个1T移动硬盘");
	}else{
		System.out.println("没有奖励");
	}
}

这个问题得到了解决,可是看上去很繁琐,这个问题显然是等值的判断,之前的都是区间判断,对此Java提供了一种结构,可以方便解决等值判断问题,这就是switch选择结构;

什么是switch选择结构

switch选择结构可以更好地解决等值判断问题;
语法:

switch(表达式){
	case 常量1:
		代码块1;
		break;
	case 常量2:
		代码块2;
		break;
	. . . . . .
	default:
		代码块n;
		break;
}
switch,case,default,break都是Java的关键字

switch:表示"开关",这个开关就是switch关键字后面小括号里表达式的值,JDK1.7后,switch语句小括号里可以是int,short,byte,char,枚举类型,String类型表达式;
case:表示:“情况,情形”,case后可以是int,short,byte,char,枚举,String类型,通常是一个固定的值.case块可以有多个,顺序可以改变,但是每个case后常量的值必须各不相同;
default:表示"默认",即其他情况都不满足.default后要紧跟冒号.default块和case块的先后顺序可以变动,不会影响程序执行的结果,通常,default块放在末尾,也可以省略;
break:表示"中断,停止",即跳出当前循环;

switch选择结构的执行过程

先计算获得switch后面小括号里的表达式或变量的值,然后计算结果顺序与每个case后的常量比较,当二者相等时,执行这个case块中的代码;当遇到break时,就跳出switch选择结构,执行switch选择结构之后的代码.如果没有任何一个case后的常量与switch后的小括号中的值相等则执行switch末尾部分的default块中的代码;

如何使用switch选择结构
public static void main(String[] args){
	int rankings = 3;
	switch(rankings){
		case 1:
			System.out.println("奖励一个mac电脑");
			break;
		case 2:
			System.out.println("奖励一个键鼠套装");
			break;
		case 3:
			System.out.println("奖励一个1T移动硬盘");
			break;
		default:
			System.out.println("没有奖励");
			break;
		}	
	}

switch选择结构的条件只能是等值的判断,而且只能是整型或字符型的等值判断.也就是说,switch选择结构只能用于判断一个整型变量或表达式是否等于某个 整数值的情况,或者一个字符型变量或表达式是否等于某个字符的情况,并且每一个case后面的常量值都不同.而多重if选择结构既可以用于判断条件是等值的情况,也可以用于判断条件是区间的情况

break能否省略不写

break语句是可以省略的,但是省略后会带来一些问题,省略的break之后:当每个case后的常量值与switch后小括号中的值相匹配时,执行该case块的代码,后面的case就不再进行条件判断,而直接执行后面所有case块中的代码,直到遇到break结束.

注意事项

每个case后的代码块可以有多个语句,既可以有一组语句,而且不需要用"{}“括起来.case的default后都有一个冒号,不能漏写,否则编译不通过,对于每个case的结尾,都要想一想是否需要从这里跳出整个switch选择结构,如果需要,一定不要忘记写"break”;
在case后面的代码块中,break语句是可以省略的,还可以让多个case执行同一语句;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/340421.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号