闰年 Switch语句 分支语句的总结

写一个程序,判断某一年是否为闰年

(被4整除但不能被100整除能被400整除)是闰年 否则是平年

编程习惯

在实现分支判断时, 一个好的习惯是把匹配成功率高的判断放在前边,可以提高效率

在表达式判断时,我们尽量使用确定的值去跟不确定的值去判断

if(10 == x) 而不是 if(x == 10)

语法:
switch(表达式){
case 取值1: 语句块1;
break;
case 取值n: 语句块n;
break;
default: 语句块n+1;
break;
}

switch与if嵌套
switch(表达式){
case 取值n: 语句块n;
if(表达式){…}
break;
default: 语句块n+1;
break;
}

switch语句有关规则
1、表达式的返回值必须是下述几种类型之一:int, byte, char, short,确定的结果,jdk1.7后支持String;
2、case子句中的取值必须是常量,且所有case子句中的取值应是不同的;
3、default子句是可选的;
4、break语句用来在执行完一个case分支后使程序跳出switch语句块;如果case后面没有写break则直接往下面执行!
5、case后面的执行体可写{ }也可以不写{ }

每一个case子句的值必须是唯一的常量值 之后必须加break 不然会继续执行

default子句可以省略

package Stringlei;

import java.util.Scanner;

public class Bianliang {
	public static void main(String[] args) {
		//编写一程序实现如下功能:输入1、2、3、4、5、6、7(分别对应星期一至星期日)中的任何一个数。
		Scanner input = new Scanner(System.in);
		System.out.println("今天是星期几:");
		int day = input.nextInt();
		
		//case 一定要加break 不然会继续执行下边的case
		switch (day) {
		case 1:
			System.out.println("今天是星期一");
			int method = input.nextInt();
			if(method == 1) {
				System.out.println("公交出行");
			}else {
				System.out.println("地铁出行");
			}
			break;
		case 2:
			System.out.println("今天是星期二");
			break;
		case 3:
			System.out.println("今天是星期三");
			break;
		case 4:
			System.out.println("今天是星期四");
			break;
		case 5:
			System.out.println("今天是星期五");
			break;
		case 6:
			System.out.println("今天是星期六");
			break;
		case 7:
			System.out.println("今天是星期日");
			break;
		default:
			System.out.println("地球上不适合你, 请回火星吧");
			break;
		}
		
	} 
}

if vs switch
同:都是选择分支语句。
异:1、语法不同。
2、语句后表达式值的类型不同,if语句表达式值的类型是boolean,switch分支表达式值的类型是byte,short,char,int,枚举,String。
3、适用场景
if:变量的值在某个区间之内。
switch:变量的值是某个定值。

if vs 三目运算
三目运算符都可以使用if语句实现,反之不成立。

Java 7 switch支持String的实现原理:
这个新特性是在编译器这个层次上实现的
在编译的过程中,编译器会根据源代码的含义进行转换,不同的Java编译器可能采用不同的方式来转换
比如:如果switch语句中只包含一个case语句,那么就可以简单的将其转换成一个if语句。
如果包含一个case和一个default语句,就可以转换成if-else语句。而对于复杂的情况(多个case语句),
也可以转换成Java 7 之前的switch语句,只不过使用字符串的哈希值(整数)作为switch语句表达式的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值