> 文档中心 > 程序流程控制语句

程序流程控制语句

文章目录

  • 顺序结构
  • 分支结构
    • if分支
      • 格式一:
      • 格式二:
      • 格式三:
    • switch分支
      • switch的穿透性
    • if 和 switch 的特点
  • 循环结构
    • for循环
      • for循环案例一
      • for循环案例二
    • while循环
      • while循环案例
    • do-while循环
      • 三种循环的区别
      • for 和 while 的区别:
    • 死循环
      • 死循环案例
    • 循环嵌套
    • 跳转关键字:break、continue

提示:记录一下课程学习笔记:

顺序结构

如果你没有写其他的结构,按照代码的先后顺序,依次执行程序中大多数的代码都是这样执行的

public class Test {public static void main( String[] args) {System.out.println( "A" );System.out.println( "B" );System.out.print1n( "C" );}}

程序流程控制语句

分支结构

if分支

if 分支有三种格式
根据判定的结果(真或假)决定执行某个分支的代码

格式一:

if(条件表达式){语句;}

程序流程控制语句

执行流程:
首先判断条件表达式的结果,如果为true执行语句体,为false就不执行语句体

注意事项:
if 语句中,如果大括号控制的只有一行代码,则大括号可以省略不写。

格式二:

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

程序流程控制语句
执行流程:
首先判断条件表达式的结果,如果为true执行语句体1,为false 就执行语句体2

格式三:

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

程序流程控制语句

执行流程:
1、先判断条件1的值,如果为true则执行语句体1,分支结束;如果为false则判断条件2的值
2、如果值为true就执行语句体2,分支结束;;如果为false则判断条件3的值
3…
4、如果没有任何条件为true,就执行else分支的语句体n+1。

switch分支

也是匹配条件去执行分支,适合做值匹配的分支选择,结构清晰,格式良好。

switch(表达式){case1:执行代码...;break;case2:执行代码...;break;...case值n-1:执行代码...;break;default:执行代码n;}//例子:switch (a) {case 3:System.out.println("abc");break;default:System.out.println("xyz");}

执行流程:
先执行表达式的值,拿着这个值去与case后的值进行匹配。
匹配哪个case的值为true就执行哪个case,遇到break就跳出switch分支。
如果case后的值都不匹配则执行default代码。

switch分支注意事项:
表达式类型只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持String,不支持double、float、long。
case给出的值不允许重复,且只能是字面量,不能是变量。
不要忘记写break,否则会出现穿透现象。

switch的穿透性

如果代码执行到没有写break的case块,执行完后将直接进入下一个case块执行代码(而且不会进行任何匹配),直到遇到break才跳出分支,这就是switch的穿透性。

if 和 switch 的特点

if 其实在功能上远远强大于switch。
if 适合做区间匹配。
switch适合做:值匹配的分支选择、代码优雅。

循环结构

for循环

控制一段代码反复执行很多次。

//格式:for(初始化语句;循环条件;迭代语句){循环体语句(重复执行的代码);}//示例1//输出3次HelloWorldfor (int i = 0; i < 3; i++) {System.out.println( "Hello world" );}//示例2for (int A = 0; A < 5; A++) {for (int B = 0; B < 7; B++) {System.out.print("*");// 不换行打印星号}System.out.println();// 每打印一轮,进行一次换行}//示例2输出:/************************************ */

程序流程控制语句
执行的流程:
循环一开始,执行int i= 0一次。
然后判断循环条件:0<3返回true ,进入到循环体中执行输出: helloWorld,然后执行迭代语句i++,此时i=1了。
然后判断循环条件:1<3返回true ,进入到循环体中执行输出:helloWorld,然后执行迭代语句i++t,此时i=2了。
然后判断循环条件:2<3返回true ,进入到循环体中执行输出: helloWorld,然后执行迭代语句i++,此时i=3了。
然后判断循环条件:3<3返回false,循环立即结束!!

for循环案例一

求和
需求:求1-5之间的数据和,并把求和结果在控制台输出。
分析:
1、定义for循环,使其能够依次产生:1、2、3、4、5。

for (int i = 1; i<= 5; i++){}

2、在循环外定义一个整数变量sum用于求和,循环每产生一个数,就累加到sum中去

int sum = 0;//使用循环控制输出1-5for (int i = 1; i<= 5; i++){//在循环外定义变量sum累加数据sum += i;}

3、循环结束后,输出求和变量即是结果。

for循环案例二

需求:求1-10之间的奇数和,并把求和结果在控制台输出。
方式一:
1、定义for循环,使其能够依次产生:1、2、3、4、5…10。
2、循环每产生一个数据,都通过 if 判断其是否是奇数

for (int i = 1; i <= 10; i++) {if (i % 2 == 1) {// i = 1 3 5 7...}}

3、在循环外定义一个整数变量sum,在 if 分支内来累加产生的奇数数据。

方式二
1、定义for循环,使其能够依次产生:1、3、5、7 、9(直接使用for循环找出奇数)

for ( int i = 1; i <= 10; i+=2) {}

2、在循环外定义一个整数变量sum,循环每产生一个奇数就累加到sum

while循环

//初始化语句;while(循环条件){循环体语句(被重复执行的代码);迭代语句;}//示例1int i = 0;while (i < 3) {System.out.println( "Hello world" );i++;}//示例2int a = 0;while(a <= 7) {System.out.println("a="+a);a++;}

程序流程控制语句
什么时候用for循环,什么时候用while循环?

功能上是完全一样的,for能解决的while也能解决,反之亦然。
使用规范是:
知道循环几次:使用for
不知道循环几次建议使用: while。

while循环案例

需求:
世界最高山峰是珠穆朗玛峰(8848.86米=8848860毫米),假如我有一张足够大的纸,
它的厚度是0.1毫米。
请问,折叠多少次,可以折成珠穆朗玛峰的高度。

思路:
这种不清楚要循环多少次的情况可以选择用while实现

分析步骤
定义变量存储珠穆朗玛峰的高度、纸张的高度。

double peakHeight = 8848860;//山峰高度double paperThickness = 0.1;//纸张厚度

使用while循环,循环条件是(纸张厚度<山峰高度),内部控制纸张折叠,每折叠一次,纸张厚度为原来两倍,循环外定义计数变量,每折叠依次让该变量+1

int count = 0;while (paperThickness < peakHeight){paperThickness *= 2;count++;

do-while循环

先执行再判断循环条件。

//初始化语句;do {循环体语句;迭代语句;}while (循环条件);

特点:一定会先执行一次循环体。

int i = o;do {System.out.println("Hello World! ");i++;}while( i < 3);

程序流程控制语句

三种循环的区别

for循环和while循环(先判断后执行)
do…while (第一次先执行后判断)

for 和 while 的区别:

for循环和while循环的执行流程是一模一样的。
如果已知循环次数建议使用for循环,如果不清楚要循环多少次建议使用while循环。
for循环中,控制循环的变量只在循环中可以使用。While循环中,控制循环的变量在循环后还可以继续使用。

int i = 0;while (i < 3) {System.out.println("Hello world" );i++;}System.out.println(i);
for (int i = 0; i < 3; i++ ) {System.out.println("He1lo world");}System.out.println(i);

死循环

一直循环的执行下去,如果没有干预不会停止下来

for(;;) {System.out.print1n( "Hello world" );}//经典做法while(true) {System.out.println( "Hello wor1d" );}do {System.out.println( "Hello world" );} while (true);

死循环案例

需求:
系统密码是520,请用户不断的输入密码验证,验证不对输出密码错误,验证成功输出欢迎进入系统,并停止程序。
分析:
使用while死循环,让用户不断输入数据
与密码比对:验证不成功输出密码错误、
验证成功输出欢迎进入系统,并使用break结束当前循环的执行。

循环嵌套

循环中又包含循环

外部循环每循环一次,内部循环全部执行完一次。

for(int i = 0; i < 3; i++) {//又循环for(int j = 0; j < 5; j++) {System.out.print1n(我爱你");}}

跳转关键字:break、continue

break

跳出并结束当前所在循环的执行。
可以用在嵌套循环中跳出整个外部循环的并立即结束它。

continue

用于跳出当前循环的当次执行,进入下一次循环。
可以用在嵌套循环中跳出外部循环的当次执行,进入外部循环的下一次。

88读书网