流程控制(if语句/for循环详解)

分支结构

  1. 到达某个状态时,可能会有多种情况,每种情况都需要提前准备好,所以多条路的路口就是一个分支。代码写得多,程序运行的少。

  2. 分类:

    1. if语句

      1. if else

      2. if else if else

    2. switch语句

if语句

if

1.格式:

if (布尔表达式) {
  语句体;
}

2.执行流程  

  1. 计算布尔表达式的值,要么为true、要么为false

  2. 如果计算结果为true,执行语句体

  3. 如果计算结果为false,就不执行语句体

If语句的注意事项        

  1. if后面跟着的小括号里面,必须是boolean的值

  2. 在小括号后面不要加分号,

  3. 语句体:可以是任意语句。如果语句体只有一句,那么大括号可以省略。但是建议所有情况都加上大括号,不要省略

if else

1.格式:

 if (条件表达式) {
  语句体1;
} else {
 语句体2;
}

2.执行流程  

  1. 计算条件表达式的值,要么是true、要么是false

  2. 如果条件表达式的值为true,执行语句体1

  3. 如果条件表达式的值为false,执行语句体2

if else if else

1.格式:

 if (条件表达式1) {
  语句体1;
} else if (条件表达式2) {
 	语句体2;
} else {
  语句体3;
}

 

2.执行流程:

1、计算条件表达式1,如果为true,就执行语句体1;

2、如果条件表达式1为false,计算条件表达式2,如果为true,就执行语句体2

4、如果以上表达式都不满足条件就执行else

3.注意:

if else if else 三者互斥

switch

1.switch:表示英文中的开关。

2.格式:

 switch (表达式) {
 	case 常量1:
    语句体1;
  break;
  case 常量2:
    语句体2;
  break;
  default:
    语句体n+1;
  break;
}

3.执行流程:  

  1. 计算表达式的值,分别和各个常量匹配

  2. 如果和常量1匹配,那么久执行语句体1,break,switch语句就结束了

  3. 如果和常量1不匹配,那么就判断是否和常量2匹配,如果匹配就执行语句体2,break,switch语句就结束了

  4. 如果以上常量都不匹配就执行default

注意事项

  1. 表达式类型:

    1. jdk1.5之前:byte、short、int 、char

    2. jdk1.5:枚举类型

    3. jdk7:String

  2. case后面只能跟常量,不能跟变量

  3. 穿透问题:如果case语句后面不跟上break

If和switch区别

1、相同点:if语句和switch语句都可以表达分支结构

2、不同点:

1、if语句格式相对灵活,更加强大,switch语句相对弱小。所有的switch语句都可以被if语句替代。

2、if语句更多的是做一些连续性区间值的判断,而switch语句无法做到

3、if语句每次都需要获取表达式的值,而switch只获取一次表达式的值,所以switch的效率较高一些。

循环结构

  1. 对于某些需要重复执行的,相同或者相似的语句,使用某种格式来完成对代码的简化。

  2. 分类:

    1. for

    2. while

    3. do...while语句

for语句

1.格式:

for (初始化语句 ; 循环的条件表达式 ; 初始化变量的自增 ) {
 循环体语句;
}

2.执行流程:

  1. 执行初始化语句

  2. 计算循环的条件表达式

  3. 如果计算为false,就结束for循环

  4. 如果计算为true,就执行循环体语句

  5. 执行初始化变量的自增

  6. 回到第2步

调试

  1. 通过代码阅读或者加输出语句查找程序错误,当程序结构越来越复杂时,需要专门的技术来发现和定位错误,就是“程序调试”

  2. 调试步骤:

    1. 加断点

    2. 启动调试

    3. 逐语句执行,观察变量

  3. 调试操作

    1. F7:step Into进入,逐步执行,会进入到自定义方法中,不会进入到类库的方法中

    2. F8:step Over跳过,逐语句执行,不会进入到自定义方法中,不会进入到类库的方法中

    3. Alt + Shift +F7:Force step into,会进入到自定义方法,会进入到类库的方法

    4. Shift + F8:Step Out:跳出,指当我们在一个方法中调试时,如果觉得该方法在后面不会有任何问

while语句

1.格式:

 初始化语句
 while(条件表达式) {
  循环体语句;
  初始化变量的自增;
}

2.执行流程:

  1. 初始化语句

  2. 计算条件表达式,如果为false,循环直接结束

  3. 如果为true,执行循环体语句

  4. 执行初始化变量的自增

  5. 回到第二步

do while语句

1.格式:

 

 初始化语句;
 do {
  	循环体语句;
    初始化变量的自增;
} while (循环条件表达式);

2.执行流程:

  1. 初始化语句

  2. 循环体语句

  3. 初始化变量的自增

  4. 计算循环条件表达式的值,如果为false,循环结束

  5. 如果为true,回到第二步

三种循环语句的区别  

  1. while和do while区别:

    1. while先判断 后执行,do while 先执行,后判断

    2. do while语句至少可以执行一次,另外两种有可能一次都执行不了

2、while/do while和for区别:

while/do while一般用于描述相对模糊的范围,不确定循环次数

for用于描述相对准确,知道循环次数的循环

跳转语句

  1. break语句:

    1. 退出循环

  2. continue语句:

    1. 结束本次循环,继续下次循环

循环嵌套

练习:绘制三角形

#

##

###

####

#####

for (int i = 0; i < 5; i++) {
	for (int j = 0; j <= i; j++) {
		System.out.print("#");
	}
	System.out.println();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值