分支语句——JAVA程序设计
- 提问者网友:献世佛
- 2021-07-17 07:43
- 五星知识达人网友:舍身薄凉客
- 2021-07-17 08:02
补充下:
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 语句。
- 1楼网友:鸠书
- 2021-07-17 11:43
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为真。”
- 2楼网友:时间的尘埃
- 2021-07-17 10:41
- 3楼网友:老鼠爱大米
- 2021-07-17 09:21
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'); } } }