欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVADay5—if语句—switch语句(case穿透现象)—8.20

程序员文章站 2022-06-07 16:04:59
...

1.if语句——if(boolean型)(注意只能是boolean型)

区别以下两种:
boolean型变量可以在if的括号内使用赋值号“=”

public class ifo
{
	public static void main(String[] args){
	boolean s=false;
	if(s=true)//这里写赋值号,编译没错。
	{
	 System.out.println(s);//输出结果是:true
	}
	}
}

除boolean外的其他变量不可在if的括号内使用赋值号“=”

public class ifo
{
	public static void main(String[] args){
	int s=9;
	if(s=9)//这里写赋值号,编译报错,不通过。因为赋值完s是个int型变量
		   //(修改方法:变成“==”号可以,判断结果是个boolean型变量)
	{
	 System.out.println(s);//这一句没有执行机会
	}
	}
}

2.switch语句

0~59不及格;60-69及格;…90-100优

public class switcho
{
	public static void main(String[] args){
	java.util.Scanner s =new java.util.Scanner(System.in);	
	System.out.println("请输入成绩:");
	double Grade=s.nextDouble();
	String str="优";
	int Score=(int)Grade/10;
	switch (Score)
	{
	case 0:case 1:case 2:case 3:case 4:case 5:
		{
			str="不及格";
			break;
		}
	case 6:
		{
			str="及格";
			break;
		}
	case 7:
		{
			str="中";
			break;
		}
	case 8:
		{
			str="良";
			break;
		}
	case 9:
		{
			str="优";
			break;
		}
	default: 
		{
		str="成绩不合法";
		break;
		}
	}
	System.out.println("成绩:"+str);
	}
}
case穿透现象:如下代码

在缺少break时(当然,break也不是非有不可,只不过它可以防止case穿透而已)

int Score=(int)Grade/10;
switch (Score){
	case 6:{str="及格";}
	case 7:{str="中";}
	case 8:{str="良";}
	case 9:{str="优";break;}
}

score=6时,在执行完str=“及格”;后,case7、case8、case9的条件不再判断,直接执行其内的语句,直到break让代码停下来。
所以输出结果是“优”。

switch(),括号内可以是int、short、byte、char型。

只不过内部运行时,他们都转换为了int型。