day8 流程控制

流程控制的分类

在C语言中,流程结构一共分为三种:顺序结构、选择结构、循环结构

任何复杂的算法都可以用顺序结构、选择结构和循环结构三种基本结构组成

顺序结构:就是顺序从上到下按顺序执行,后面使用的变量,必须在前面声明(定义)。要想使用某个变量更改后的结果,必须也是先更改再使用。

选择结构:(分支结构):根据给定的条件不同进而执行不同的语句。

循环结构:根据判断条件是否成立,来进行重复执行某件事丶操作叫做循环结构

选择结构

选择结构的语法分为两类 if 的分支选择结构和switch 的分支选择结构

if 的选择结构,既可以用于范围判断也可以用于等值判断

switch 的选择结构,只能完成等值判断

if  的选择结构

分为三类:单分支选择、双分支选择、多分枝选择

if(表达式)

{

        语句块;

}

注意: 1、表达式可以是任意合法的表达式,但是能够判断真假

2、小括号后没有分号

3、该结构就是判断语句块是否执行的,如果表达式成立,则执行语句块,否则,跳过语句块

4、如果语句块中,只有一条语句,那么花括号可以省略不写

5、如果if后面没有跟花括号,默认后面的一条语句就是语句块内容 

双分支选择结构

if(表达式)

{

     语句块1;

}else {

      语句块2;

}

1、双分支选择结构就是判断两个语句块执行哪一个的

2、表达式成立,执行if后的语句块,表达式不成立执行else中的语句块

3、如果语句块1中只有一条语句,则if后的花括号可以省略;如果语句块2中只有一条语句,else后的花括号可以省略

if 的多分支选择

if(表达式1)

{

      语句块1;

}else if(表达式2)

{      语句块2;

}else if(表达式3) 

{       语句块3;

}... else {

         语句块n;

}

1、多分支if是完成判断多个语句块中执行哪一个的

2、先判断前面的表达式,如果前面的表达式成立,则后面就不再进行判断了。如果前面的表达式不成立,继续判断后面的表达式,直到某个表达式成立

3、如果某个表达式对应的语句块中只有一条语句,对应的花括号可以省略

4、判断是从前向后进行对表达式进行判断的

switch选择结构

switch的选择结构式 switch与case结合使用完成的等值判断的选择机构

语法格式

switch(表达式)

{

    case 常量1:

{

     语句块1;

}    break;

     case 常量2:

{     

      语句块2;

}      break; ...

case 常量n:

{

        语句块n;

}       break;

        defalue:

        语句块n+1;

}

注意事项:

1.switch后面的小括号后没有分号

2.switch中的表达式可以是合法的表达式,但是表达式的结果必须是整形数据(char、short、interesting、long)

3.switch后面的花括号绝对不能省略

4.case和常量之间使用空格隔开

5.case后面必须跟的是常量或者常量表达式,不能出现变量

6.常量后面使用冒号引出

7.每个case后面的常量表达式结果不能相同

8.每个case后面的break可以省略,如果省略会自动case,直到下一个break或者整个switch结束

9.每个case后面的花括号可以省略

10.每个case没有固定的位置,可以互相调换

11.switch中可以没有default,default是在所有case都不满足的情况下执行

12.case后面可以使用 常量1 ... 常量2:  的形式进行范围判断

循环结构

1.根据判断条件,来重复执行相同动作的结构就叫做循环结构

2.循环的分类:

计数控制的循环:循环是有确定的次数控制的循环称为计数控制的循环

条件控制的循环:循环次数不确定,达到某个条件后终止的循环

3.循环的方式:

当型循环:先判断后执行循环体的循环,称为当型循环,当型循环,有可能一次也不执行

直到型循环:先执行一次循环后再判断是否进行下一次循环。至少执行一次循环

练习:

1、使用while循环完成,求从起始值到终止值之间的数的总和输出

2、使用while循环,统计一下输入的起始值到终止值之间有多少这样的数(7的倍数或者个位数为7的数)

3、使用while循环完成,提示并输入一个整数,判断该数是几位数

4、使用while循环,输出斐波那契数列前n项,项数由用户输入

1 1 2 3 5 8 13 。。。

5、折纸赛珠峰问题:一个厚度为0.1厘米的纸,有足够大,对折多少次后,会超过珠穆朗玛峰的高度(8848.88米)

6、韩信点兵问题:已知韩信手下有600--700之间的兵,在某次阅兵时,每3人排成一列多出1人,每5人排成一列多1人,每7人排成一列还是多一人。韩信掐指一算可以给出确定的值,请你使用循环完成军队中有多少人

作业:作业链接上的 1.7 的内容尽可能做

<think>好的,我现在需要帮助用户理解Java的控制流程语句,并提供示例。用户之前可能已经接触过一些基础概念,但需要更详细的解释和代码示例来巩固理解。首先,我得回顾一下Java中主要的控制流程语句类型,包括条件语句(if-else,switch)和循环语句(for,while,do-while),以及跳转语句(break,continue,return)。 根据用户提供的引用,特别是引用[2]和引用[4],用户可能对条件控制语句如if-else和switch比较关注,同时也提到了continue语句的例子。因此,我需要确保涵盖这些内容,并给出清晰的代码示例。 首先,条件控制语句。if-else是最基本的,用于根据条件执行不同的代码块。需要解释语法结构,比如单条件if,if-else,以及多条件的else-if。然后,switch语句用于多分支选择,可以比较不同case的情况,注意要提到Java 7以后支持字符串作为case值,以及每个case后需要break来防止穿透。 接下来是循环控制语句。for循环适合已知循环次数的情况,while和do-while适用于不确定次数,但do-while至少执行一次。需要分别给出示例,比如使用for循环遍历数组,while循环处理用户输入直到满足条件,do-while至少执行一次。 然后是跳转语句,如break和continue。break用于跳出整个循环,而continue跳过当前迭代。引用[3]中的例子展示了continue的使用,可以在示例中再次强调这一点。此外,return用于退出方法并返回值,这也是控制流程的一部分,但用户可能更关注循环和条件语句,所以这部分可以简要提及。 在代码示例方面,需要确保语法正确,并且每个示例能直观展示控制流程。例如,if-else的例子可以判断一个数是否为正数;switch的例子可以处理星期几的输出;for循环遍历数组;while循环处理输入验证;do-while确保至少执行一次。同时,break和continue的示例可以展示在循环中的具体应用。 需要注意的是,用户提供的引用中有一些代码示例,比如引用[3]中的continue示例和引用[4]中的复合语句使用。这些可以作为参考,确保示例的多样性和覆盖不同情况。例如,复合语句的使用可能涉及到代码块的作用域,这在控制流程中也很重要,可以在适当的地方提到。 另外,用户要求回答结构清晰,逐步解决问题,所以需要将内容分点列出,每个部分有明确的标题和解释,代码示例用代码块展示。同时,根据系统指令,数学公式要用$...$格式,但在这个问题中可能涉及较少,主要注意代码格式的正确性。 最后,生成相关问题时要考虑用户可能的后续疑问,比如性能比较、最佳实践、调试技巧等,这有助于用户深入学习。需要确保问题具体且有引导性,帮助用户进一步探索。</think>### Java控制流程语句详解 Java控制流程语句分为三类:**条件控制**、**循环控制**和**跳转控制**。以下结合具体示例说明其用法: --- #### 一、条件控制语句 1. **`if-else`语句** 根据条件执行不同代码块: ```java int num = 10; if (num > 0) { System.out.println("正数"); } else if (num < 0) { System.out.println("负数"); } else { System.out.println("零"); } ``` 2. **`switch`语句** 多分支选择,支持整数、枚举、字符串(Java 7+): ```java String day = "MON"; switch (day) { case "MON": System.out.println("星期一"); break; case "TUE": System.out.println("星期二"); break; default: System.out.println("未知"); } ``` --- #### 二、循环控制语句 1. **`for`循环** 适用于已知循环次数: ```java int[] arr = {1, 2, 3}; for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } ``` 2. **`while`循环** 条件满足时执行,可能一次都不运行: ```java int count = 3; while (count > 0) { System.out.println("剩余次数:" + count); count--; } ``` 3. **`do-while`循环** 至少执行一次: ```java int input; do { System.out.println("请输入正数:"); input = scanner.nextInt(); } while (input <= 0); ``` --- #### 三、跳转控制语句 1. **`break`** 跳出当前循环或`switch`: ```java for (int i = 0; i < 10; i++) { if (i == 5) break; // 当i=5时终止循环 System.out.println(i); } ``` 2. **`continue`** 跳过当前循环的剩余代码(引用[3]示例): ```java for (int i = 0; i < 10; i++) { if (i % 2 == 0) continue; // 跳过偶数 System.out.println(i); // 仅输出奇数 } ``` 3. **`return`** 退出方法并返回值: ```java public int add(int a, int b) { return a + b; // 返回结果并结束方法 } ``` --- #### 四、复合语句的作用域(引用[4]) Java中`{}`定义的代码块会限制变量作用域: ```java { int x = 10; // 仅在此代码块内有效 System.out.println(x); } // System.out.println(x); // 此处编译错误,x不可见 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值