一、先了解switch语句的功能,和实用条件有哪些?

解:switch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳转表的索引号与switch变量的值是相等的,如果条件是1,那么case 0还是会跳过,但是从1开始往后都会被执行:2会、如果有345都会被执行,直到遇到break或者跑出Switch.

使用switch语句时候要注意一下两点:

1、其它的任何类型都不可以.String,boolean,Objectswitch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳转表的索引号与switch变量的值是相等的。

2使用javaswitch语句要注意每个case后面有一个break;否则会发生switch穿透现象。假如你的代码里面一个break都没有,所以会依次向下执行,直到最后。如果default放到最后的话,里面没有返回语句,和你方法的声明不相符合,所以语法错误。

因此在使用switch时候最好:

1、在每一个case后面加上一个break;
2
、在最后加上default,这样更加安全和规范。

二、举个switch...例子:输入一个(范围在1至100之间的int型数字),然后于你所输入的数来判断,这个数年龄的人的×××是什么?并且把满足属此×××的数(范围在1至100之间的int型数字)全部输出。

package com.cn;

import java.util.Scanner;

public class Zuoye {
 static void fun(int k){//定义一个fun的方法,并且实现算法

  for(int i=1;i<=100;i++){
   if(i%12 == k){
    System.out.print(i+"  ");
   }
  }
  System.out.println();
 }
 public static void main(String[]args){


     Scanner s=new Scanner(System.in);//从控制台输入数值(信息:表示可以是字符串类型)

     int a ;

     while(true){ 
      System.out.println("请输入数字:");
       a=s.nextInt();//把控制台输入的值赋值给a
       while(!(a>=1&&a<=100)){
        System.out.println("无效年龄,重新输入:");
        a = s.nextInt();
       }

        switch(a%12){
   case 0:
    System.out.print(a+"岁属蛇 , 属蛇的年龄有:");

    break; //跳出整个循环
   case 1:
    System.out.print(a+"岁属 龙, 属龙的年龄有:");

    break; 
   case 2:
    System.out.print(a+"岁属兔 , 属兔的年龄有:");
    fun(a%12);
    break; 
   case 3:
    System.out.print(a+"岁属虎 , 属虎的年龄有:");

    break; 
   case 4:
    System.out.print(a+"岁属牛 , 属牛的年龄有:");

    break; 
   case 5:
    System.out.print(a+"岁属鼠 , 属鼠的年龄有:");

    break; 
   case 6:
    System.out.print(a+"岁属 猪, 属猪的年龄有:");

    break; 
   case 7:
    System.out.print(a+"岁属 狗, 属狗的年龄有:");

   break; 
   case 8:
    System.out.print(a+"岁属鸡 , 属鸡的年龄有:");

    break; 
   case 9:
    System.out.print(a+"岁属猴 , 属猴的年龄有:");

    break; 
   case 10:
    System.out.print(a+"岁属羊, 属羊的年龄有:");

    break; 
   case 11:
    System.out.print(a+"岁属马 , 属马的年龄有:");

    break; 

      }
      fun(a%12);//直接调用fun方法,输出满足所对应×××全部值,并且降低了代码的冗余


    }
 }
 }