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