范例1. Swich语句

  Switch语句中表达式必须是整型或字符型,常量值1~常量值n必须也是整型或字符型。同一个switch语句,case的常量必须互不相同。

在switch语句中,case语句后常量表达式的值可以为整数,但绝不可以是实数;常量表达式可以是字符,但一定不可以是字符串。

  1.1. 示例代码如下:



import java.util.Scanner;

public class GetSwitch {

    public static void main(String[] args) {        
        // TODO Auto-generated method stub
        Scanner scan=new Scanner(System.in);            //创建输入流扫描器
        System.out.println("今天是星期几:");
        int week=scan.nextInt();                        //定义int型变量week,并以接收用户的录入赋值
        switch(week) {
        case 1:
            System.out.println("Today is Monday");        //输出信息
            break;
        case 2:
            System.out.println("Today is Tuesday");
            break;
        case 3:
            System.out.println("Today is Wednesday");
            break;
        default:
            System.out.println("Sorry,I don't know");
        }
        
    }

}



  1.2. 在switch语句中每个case关键字可以作为一个条件分支,但是对于多个条件处理相同业务的情况,可以把case分支关联在一起,

省略它们之间的break语句,而在最后一个相同的case分支中实现业务处理并执行break语句。示例代码如下:



public class Example {
    public static void main(String args[]) {        //主方法
        Scanner scan=new Scanner(System.in);        //创建输入流扫描器
        System.out.println("请输入职员的姓名:");            //提示输入信息
        String empname=scan.nextLine();                //接收输入信息
        System.out.println("职员所从事的编程语言:");        //提示输入信息
        String language=scan.nextLine();            //接收用户信息
        switch(language.hashCode()) {                //根据编程语言确定职员任务范围
        case 3254818:                                //Java的哈希码
        case 2269730:                                //Java的哈希码
        case 2301506:                                //Java的哈希码
            System.out.println("职员:"+empname+"从事Java开发工作");
            break;
        case 2112:                                    //C#的哈希码
        case 3104:                                    //C#的哈希码
            System.out.println("职员:"+empname+"从事C#开发工作");
            break;
        case -709190099:                            //Asp.Net的哈希码
        case 9745901:                                //Asp.Net的哈希码
        case 955463181:                                //Asp.Net的哈希码
            System.out.println("职员:"+empname+"从事Asp.net开发工作");
            break;
        default:
                System.out.println("职员:"+empname+"不从事开发工作");                
        }
    }
}



范例2. 验证登录信息的合法性

  大多数系统登录模块都会接受用户通过键盘输入的登录信息,这些登录信息将会被登录模块验证。本范例通过if...else语句进行条件判断简单实现登录信息的验证。代码如下:



import java.util.Scanner;

public class CheckLogin {
    public static void main(String[] args) {
        Scanner scan=new Scanner(System.in);            //创建输入流扫描器
        System.out.println("请输入用户名:");                    //提示输入用户名信息
        String user=scan.nextLine();                    //接收用户输入
        System.out.println("请输入用户密码:");                //提示输入密码信息
        String pwd=scan.nextLine();                        //接收用户 输入
        if(!user.equals("tiger")) {                        //判断用户的合法性
            System.out.println("您输入的用户名不正确");
        }else if(!pwd.equals("soft123")) {                //判断登录密码的合法性
            System.out.println("您输入的登录密码不正确");
        }else {
            System.out.println("登录成功");
        }
    }
}



范例3. 遍历语句

  3.1. foreach语句是for语句的特殊简化版本,foreach语句并不能完全取代for语句,然而任何foreach语句都可以改写成for语句循环版本。

for语句遍历语法格式为:for(元素变量 x : 遍历对象 obj){ 引用了x的Java语句;}。示例代码如下:



public class Repetition{
    public static void main(String args[]){
        int arr[]={12,33,8,14};                //声明一维数组
        System.out.println("一维数组中的元素分别是:");    //输出信息
        for(int x : arr){                               //foreach语句
            System.out.println(x +"\t");
        }
    }
}



  3.2. 使用while循环遍历数组,示例代码如下:



public class ErgodicArray {
    public static void main(String[] args) {
        String aves[]= {"老虎","狮子","大象","豹子","狐狸","黄鹂","鹦鹉","百灵鸟"};    //定义字符串数组并赋值
        int intArr=0;                                                    //定义索引变量并赋初值
        System.out.println("动物园有:");
        while(intArr<aves.length) {                                    //利用whild循环遍历数组
            System.out.print(aves[intArr++] + " ");                    //自增索引值
        }
    }
}



范例4. 跳转语句

  4.1. break跳转语句:在switch语句中,break语句用于中止下面case语句;break语句还可以应用在for、while和do...while循环中强行退出循环,

也就是忽略循环体中任何其他语句和循环条件的限制。示例代码如下:



public class BreakDemo {
    public static void main(String args[]) {
        String flag="1到100的自然数之和是:";                //定义字符串变量flag并赋初值
        int sum=0;                                    //定义int型变量sum,并赋初值为0
        for(int i=1;i<=100;i++) {                    
            sum+=i;                                    //将各数进行相加
            if(sum>2000) {                            //如果和大于2000
                flag="从1到"+i+"之间连续整数的和是:";
                break;                                //退出循环
            }
        }
        System.out.println(flag+ sum);
    }
}



  其执行结果为:从1到63之间连续整数的和是:2016

  4.2. continue语句只能应用在for、while和do...while循环语句中,用于让程序直接跳过其后面的语句,进行下一次循环。示例代码如下:



public class ContinueDemo {
    public static void main(String[] args) {
        String flag="从1到10之间的奇数是:";            //定义输出字符串型变量flag,并初始化值
        System.out.println(flag);
        for(int i=1;i<10;i++) {
            if(i%2==0) {
                continue;
            }
            System.out.print(i+" ");
        }
    }
}



  有如:



public class ContinueDemo{
    public static void main(String args[]){
        int i=0 ;                //定义循环增量
        System.out.println("十以内的全部偶数是:");
        while(i<10){
            i++;                //累加的i值
            if(i % 2 ==1){    //当i的值除以2余1时,表示该数不是偶数
                continue;        //进行下一次循环
            }
            System.out.println(i+ " ");        //输出i的值
        }
    }
}



范例5. 终止循环体

  循环用于复杂的业务处理,可以提高程序的性能和可读性,但是循环中也有特殊情况,比如由于某些原因需要立即中断循环去执行下面的业务逻辑。示例代码如下:



public class BreakCycle {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("\n ************************中段单循环的示例*************************");
        String aves[]= {"老虎","狮子","大象","豹子","狐狸","黄鹂","鹦鹉","百灵鸟"};    //定义字符串数组并赋值
        System.out.println("在你发现第一只大象之前,告诉我都有哪些动物。");
        for(String str:aves) {                        //foreach遍历数组
            if(str.equals("大象")) {                    //如果遇到大象
                break;                                //中断循环
            }
            System.out.println("有: "+str+"  ");        //否则输出数组元素
        }
        System.out.println("\n\n*********************中断双层循环的示例*************************");
        int[][] myNum= {{68,79,56,83},
                {23,77,80,89},
                {92,95,99,46}};                        //创建整数数组
        System.out.println("该数组中的数据:\n First\t Second\t Third\tFourth");
        No1:for(int[] is:myNum) {                    //遍历数据表格
            for(int i:is) {
                System.out.println(i+"\t");            //输出数据
                if(i<60) {                            //如果中途遇到小于60的数据,立即中断所有输出
                    System.out.println("\n So and on,"+i+" ");
                    break No1;
                }
            }
            System.out.println();
        }
    }

}



  执行结果为:

************************中段单循环的示例*************************
在你发现第一只大象之前,告诉我都有哪些动物。
有: 老虎
有: 狮子

*********************中断双层循环的示例*************************
该数组中的数据:

First Second Third Fourth
68 
79 
56  So and on,56