#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里面的意思是把前面全部否定了,这里要注意,不要出现这种分不清的情况!


练习:用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语句来判断一下输入一个分数段,判断出来是属于哪个阶段

全部评论

相关推荐

想润的芹菜人狠话不多:把其中一个老总放中间都会得罪另一个
点赞 评论 收藏
分享
无情咸鱼王的秋招日记之薛定谔的Offer:好拒信,偷了,希望有机会用到
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务