java三种基本控制结构_Java基础系列——流程控制之分支结构(07)

21b50ae70e18503be9689347a7d4412f.png

流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。

其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:

顺序结构 : 程序从上到下逐行地执行,中间没有任何判断和跳转。

分支结构 : 根据条件,选择性地执行某段代码;有if…else和switch-case两种分支语句。

循环结构 : 根据循环条件,重复性的执行某段代码。有while、do…while、for三种循环语句;JDK1.5提供了foreach循环,方便的遍历集合、数组元素。

顺序结构

程序从上到下进行执行,中间没有任何跳转。示例如下

/**

* 顺序结构

*/

public class SequenceStructure {

public static void main(String[] args) {

int i = 10 ;

System.out.println( i );

i += 100 ;

System.out.println( i );

}

}

分支结构

if-else 结构

一般情况下有三种格式:

if( 条件表达式){

执行代码块;

}

caa31d59ea4b622999019dd108f6bbd3.png

if( 条件表达式 ){

执行代码块1;

}else{

执行代码块2;

}

95546345ca0aa0ea684a6136883bb46d.png

if ( 条件表达式1 ){

执行代码块1;

}else if ( 条件代码块2 ){

执行代码块2 ;

}

.....

else{

执行代码块n;

}

c6d90fefeffc44351ca2704e572c91e3.png

说明:

条件表达式必须是布尔表达式(关系表达式或逻辑表达式)、布尔变量

语句块只有一条执行语句时,一对{}可以省略,但建议保留

if-else语句结构,根据需要可以嵌套使用

当if-else结构是“多选一”时,最后的else是可选的,根据需要可以省略

当多个条件是“互斥”关系时,条件判断语句及执行语句间顺序无所谓 当多个条件是“包含”关系时,“小上大下 / 子上父下”

public class If_ElseDemo {

public static void main(String[] args) {

int age = 75 ;

if( age < 0 ){

System.out.println( "不可能");

}else if( age > 250 ){

System.out.println("活得有点久了");

}else{

System.out.println("年龄为:" + age );

}

}

}

switch-case 语句

switch 语句通常用于有多个选择的时候的处理,通常这些选择都是有数量的。语法如下:

switch(表达式){

case 常量1:

语句1;

// break;

case 常量2:

语句2;

// break;

… …

case 常量N:

语句N;

// break;

default:

语句;

// break;

}

这里的常量表示的意思就是对应的表达式,也就是匹配项!

注意:

switch(表达式)中表达式的值必须是下述几种类型之一:byte,short,char,int,枚举 (jdk 5.0),String (jdk 7.0);

case子句中的值必须是常量,不能是变量名或不确定的表达式值;

同一个switch语句,所有case子句中的常量值互不相同;

break语句用来在执行完一个case分支后使程序跳出switch语句块;如 果没有break,程序会顺序执行到switch结尾

default子句是可任选的。同时,位置也是灵活的。当没有匹配的case时,执行default

/**

* @ClassName SwitchDemo

* @Description Switch测试使用的Demo

* @Author lujiapeng

**/

public class SwitchDemo {

public static void main(String[] args) {

String month = "12" ;

switch (month){

case "1":

case "3":

case "5":

case "7":

case "8":

case "10":

case "12":

System.out.println("是大月");

break;

case"4":

case"6":

case "9":

case "11":

System.out.println("是小月");

break ;

default:

System.out.println("是二月");

}

}

}

switch 和 if...else对比

如果判断的具体数值不多,而且符合byte、short 、char、int、String、枚举等几 种类型。虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。

其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。也就是说,使用switch-case的,都可以改写为if-else。反之不成立。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值