##################################################
目录
switch 选择结构
switch 是什么结构
switch 语法
switch 可以判断奇偶数
修改后的 switch 示例程序
##################################################
switch 选择结构
——————————
switch 是什么结构
switch 语句可以更好地解决等值判断问题
switch 后面的小括号要放一个
整形变量/表达式
字符型变量/表达式
我们前面示例过 switch 语句
这里通俗的说一下:
程序根据小括号里面的值
来跟后面的 case 的值进行比较
哪一个 case 后面的值跟小括号里面的值相等
就执行哪一个 case
如果没有匹配的 case
就执行 default
case 后面必须是一个整型或者字符型的常量
可以是字符 数字
当遇到 break
程序会立刻跳出当前结构
主要就是 case 块 和 default
switch 是很重要的
例如
登陆游戏帐号后
是选择 打匹配 呢?
还是选择 打排位 呢?
还是选择 退出 呢?
——————————
switch 语法
语法格式:
switch ( 表达式 ) {
case 常量:
break;
case 常量:
break;
case 常量:
break;
default:
break;
}
switch 跟 多重 if 选择结构很像的 都是用来处理多分支条件的结构
switch 仅仅只能用于等值判断的条件
JDK 1.6 之前的版本中 switch 的选择条件 只能是整型变量/字符型变量
JDK 1.7 后 可以使用 String 类型的字符串变量了!!!
——————————
switch 可以判断奇偶数
可以去掉某一 case 部分的 break 结束关键字
这样就会继续往下执行 case 直到遇到 bread 或者其她流程控制关键字
需求:
当 nur 的值为 1、3、5 时 输出奇数
当 nur 的值为 2、4、6 时 输出偶数
其她情况均报错
code:
import java.util.*;
public class test {
public static void main(String[] Args) {
Scanner in = new Scanner(System.in);
System.out.print ( "判断奇偶数n请输入一个数字 >>> " );
int nur = in.nextInt();
switch ( nur ) {
case 1:
case 3:
case 5:
System.out.println ( nur + " 是奇数" );
break;
case 2:
case 4:
case 6:
System.out.println ( nur + " 是偶数" );
break;
default:
System.out.println ( nur + " 请输入正确的数字!" );
break;
}
}
}
demo:
C:UsersbymejavaTest>javac test.java C:UsersbymejavaTest>java test 判断奇偶数 请输入一个数字 >>> 0 0 请输入正确的数字! C:UsersbymejavaTest>java test 判断奇偶数 请输入一个数字 >>> 1 1 是奇数 C:UsersbymejavaTest>java test 判断奇偶数 请输入一个数字 >>> 2 2 是偶数 C:UsersbymejavaTest>
case 中并没有 break 来跳出
所以继续执行下一个 case
很多时候这个小方法很有用的!
——————————
修改后的 switch 示例程序
switch 还可以搭配标签进行跳转!
code:
import java.util.Scanner;
public class test {
public static void main(String[] Args) {
Scanner in = new Scanner(System.in);
TT:
for ( ; ; ) {
System.out.printf ( "n1-3 <<< " );
int nur = in.nextInt();
switch ( nur ) {
case 1:
System.out.println ( "这是第一种情况." );
continue TT;
case 2:
System.out.println ( "这是第二种情况.." );
continue TT;
case 3:
System.out.println ( "这是第三种情况..." );
continue TT;
default:
System.out.println ( "报错!没有匹配的值!" );
break TT;
}
}
System.out.println ( "n[程序退出]" );
}
}
demo:
C:UsersbymejavaTest>javac test.java C:UsersbymejavaTest>java test 1-3 <<< 1 这是第一种情况. 1-3 <<< 2 这是第二种情况.. 1-3 <<< 3 这是第三种情况... 1-3 <<< 0 报错!没有匹配的值! [程序退出] C:UsersbymejavaTest>



