当前位置:编程学习 > JAVA >>

分支语句——JAVA程序设计

帮我解释一下switch这个关键字,它有哪些作用!帮我设计一个JAVA程序,有关switch语句的程序,实现多分支!谢谢!
答案:switch语句是分支语句,它的参数只支持比int类型小的数据,当你穿进去的参数和case后设置的值相等时,它就执行case后的语句,每个case语句最好写上break,这样下一个case它就会先判断后执行,不然就不判断直接执行了

这是一个月有多少天的例子:

import java.util.Scanner;

public class CalendarOfYear {

static int year, monthDay, weekDay; // 定义静态变量,以便其它类调用

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.print("请输入年份:");
int year1 = input.nextInt();
year = year1;
weekDay = firstDay(year1);

System.out.println("\\n " + year1 + "年 ");
printMonth();
}

public static boolean isLeapYear(int y) {
return ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0));
}

public static int firstDay(int y) {
long n = y * 365;
for (int i = 1; i < y; i++)
if (isLeapYear(i))
n = n + 1;
return (int) n % 7;
}

public static void printWeek() {
System.out.println("===========================");
System.out.println(" 日 一 二 三 四 五 六");
}

public static int getMonthDay(int m) {
switch (m) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 4:
case 6:
case 9:
case 11:
return 30;
case 2:
if (isLeapYear(year))
return 29;
else
return 28;
default:
return 0;
}
}

public static void printMonth() {
for (int m = 1; m <= 12; m++) {
System.out.println(m + "月");
printWeek();
for (int j = 1; j <= weekDay; j++)
System.out.print(" ");
int monthDay = getMonthDay(m);
for (int d = 1; d <= monthDay; d++) {
if (d < 10)
System.out.print(" " + d + " ");
else
System.out.print(d + " ");
weekDay = (weekDay + 1) % 7;
if (weekDay == 0)
System.out.println();
}
System.out.println('\n');
}
}
}

补充下:

1. byte、char、short、int 四种基本类型以及它们的包装类(需要Java5.0/1.5 以上版本支持)
都可以用于switch 语句。

2. long、float、double、boolean 四种基本类型以及它们的包装类(在Java 所有版本中)
都不能用于switch 语句。

3. enum 类型,即枚举类型可以用于switch 语句,但是要在Java5.0 (1.5)版本以上才支
持。

4. 所有类型的对象(包括String 类,但在Java5.0/1.5 以上版本中,该项要排除
byte、char、short、int 四种基本类型对应的包装类)都不能用于switch 语句。

class SwitchDemo {
public static void main(String[] args) {

int month = 8;
switch (month) {
case 1: System.out.println("January"); break;
case 2: System.out.println("February"); break;
case 3: System.out.println("March"); break;
case 4: System.out.println("April"); break;
case 5: System.out.println("May"); break;
case 6: System.out.println("June"); break;
case 7: System.out.println("July"); break;
case 8: System.out.println("August"); break;
case 9: System.out.println("September"); break;
case 10: System.out.println("October"); break;
case 11: System.out.println("November"); break;
case 12: System.out.println("December"); break;
default: System.out.println("Invalid month.");break;
}
}
}

switch是一个多分支语句,它的格式是:

switch(表达式){

case 情况1:执行的操作1;break;

case 情况2:执行的操作2;break;

……

case 情况n:执行的操作n;break;

default:其他情况下执行的操作;break;

}

default就是如果没有符合的case就执行它,default并不是必须的.

public static void main(String[] args) {

int x=1;

switch(x)

{

case 1:System.out.println("x为真。");break;

case 0: System.out.println("x为假。");break;

}

}

这是显然输出的结果为“x为真。”

上一个:java的就业方向是什么?
下一个:学JAVA好还是C++好?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,