#java系列课程#条件分支语句
分支语句
分支语句有两种:
-
if分支
-
switch分支
今天看if分支
if有三种形式
Java条件语句之 if
我们在生活中也常常会做出判断和选择。比如,如果我们的成绩大于90,则保研。这种先判断后决定就要用if语句来实现。计算机也一样,和我们的思考过程是一样的,不会直接就做出决断了。
表达式:
if(boolean expression){
statement or block;
}
Java条件语句之 if...else
if...else 语句的操作比 if 语句多了一步: 当条件成立时,则执行 if 部分的代码块; 条件不成立时,则进入
else 部分。例如,如果考试成绩大于 90 分,则保研,否则扣除奖学金资格。
表达式:
if(boolean expression){
statement or block;
}else{
statement or block;
}
Java条件语句之多重 if
多重 if 语句,在条件 1 不满足的情况下,才会进行条件 2 的判断;当前面的条件均不成立时,才会执行 else 块内的代码。例如,如果考试成绩大于 90 分,则保研 ,如果成绩介于 60 分至 90 分之间,则取消奖学金资格,否则补考。
if(boolean expression){
statement or block;
}else if(boolean expression){
statement or block;
}else if(boolean expression){
statement or block;
}else if(boolean expression){
statement or block;
}
来看这段代码
public class Niukewang{
public static void main(String [] args){
int i;
i=11;
if(i<30){
System.out.println("太小");
}
if(i==30){
System.out.println("正好");
}
if(i>30){
System.out.println("太大");
}
}
}
结果肯定为太小
就是一个和我们大脑正常思考问题时候所想的问题是一样的,因为计算机一看符合小于50,那么自然就是执行这条所以为太小
再来看一个例子
public class Niukewang{
public static void main(String [] args){
int age=44;
if(age>20){
System.out.println("青年人");
}else if(age>40){
System.out.println("中年人");
}else if(age>60){
System.out.println("老年人");
}
}
}
这是一个非常经典的例子!结果应该为多少呢?当然这个是错误的,那么错在哪里呢?
因为第一个和第二个的条件是重合的,把第三个否了,并不是前两个,所以肯定不对!那么正确的话应该怎么写呢
public class Niukewang{
public static void main(String [] args){
int age=44;
if(age>60){
System.out.println("老年人");
}else if(age>40){
System.out.println("中年人");
}else if(age>20){
System.out.println("青年人");
}
}
}
还有别的写法,如:
public class Niukewang{
public static void main(String [] args){
int age=44;
if(age>20&&age<40){//这里不能按照数学那么写20<age<40
System.out.println("青年人");
}else if(age>40&&age<60){
System.out.println("中年人");
}else {
System.out.println("老年人");
}
}
}
也就是说实在不会就要写的清楚些。
if else里面的意思是把前面全部否定了,这里要注意,不要出现这种分不清的情况!
switch分支语句
switch语句是一种不需要求布尔值的分支语句,语句的格式为:
switch(expression1){
case 1:{
//else if
statements;
break;
}
case 2:{//else if
statements;
break;
}
......
default://else
statements;
break;
每个case都进行判断,也就是说把每一种情况都写出来了。
public class Niukewang{
public static void main(String [] args){
int month=1;
switch(month){
case 1:{
System.out.println("冬天");
break;
}
case 1:{
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;
}
case 8:{
System.out.println("夏天");
break;
}
case 9:{
System.out.println("秋天");
break;
}
case 10:{
System.out.println("秋天");
break;
}
case 11:{
System.out.println("秋天");
break;
}
case 12:{
System.out.println("冬天");
break;
}
default:
System.out.println("输入有误");
}
}
使用switch语句需要注意哪些呢?
-
default语句不是非必要写的,接受除了接受值得其他值,更通俗的说就是说上面谁也不属于的就属于他,相当于我们平常归类中的其他
-
case后面可以跟多个语句,这些语句可以不用大括号括起来。
-
在JDK1.6版本之前,switch语句判断条件可接受int,byte,char,short型,不可接受其他类型。
-
一旦碰到第一次case匹配,就会开始顺序执行以后所有的程序代码,而不管后面的case条件是否匹配,后面case条件下的代码都会被执行,知道碰到break语句为止。我们可以利用这个特点来用同一段语句处理多个case条件。
所以说假如把break去掉的话,比如去掉case1中的break去掉的话,那么冬天就只输出两个了。
那么也就是说可以利用这个特性,上面的不用这么麻烦的都写,如果数量特别多,难道还能都写么~太笨重了
可以把相似的语句弄到一块,这样四条语句就可以了。
public class Niukewang{
public static void main(String [] args){
int month=1;
switch(month){
case 1:{
System.out.println("冬天");
break;
}
case 1:
case 2:
case 12:{
System.out.println("冬天");
break;
}
case 3:
case 4:
case 5:{
System.out.println("春天");
break;
}
case 6:
case 7:
case 8:{
System.out.println("夏天");
break;
}
case 9:
case 10:
case 11:{
System.out.println("秋天");
break;
}
default:
System.out.println("输入有误");
}
}
这样就容易的多,不用写那么多复杂的语句了。
练习:你考试的成绩是按照分数来划分的,现在想按照等级来划分,1-100分满,0-20是1,21-40是2,41-60是3,61-80是4,81-100是5,所以写出一个switch语句来判断一下输入一个分数段,判断出来是属于哪个阶段