范例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