流程控制:控制流程(也称为流程控制)是计算机运算领域的用语,意指在程序运行时,个别的指令(或是陈述、子程序)运行或求值的顺序。
Java 中的流程控制分为三种:
- 顺序结构
- 分支结构
- 循环结构
顺序结构
Java中的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。指令和指令之间是按照从上向下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。
分支结构
分支结构是根据指定变量或表达式的结果,决定后续运行的程序,最常用的是if-else指令,可以根据指定条件是否成立,决定后续的程序。也可以组合多个if-else指令,进行较复杂的条件判断。
单层分支结构
语法:
流程图:
练习:
练习1:用户输入一个数,判断其是否是偶数。如果是,则输出YES。
练习2:用户输入一个数,判断其是否是5的倍数而不是7的倍数。如果是,则输出YES。
练习3:用户输入一个数,系统生成一个数,判断这个数是否猜中。
If-else结构
语法:
流程图:
练习:
练习1:用户输入一个数,判断其是否是同时被3和5整除。如果是,则输出YES,否则输出NO。
练习2:用户输入一个四位数,判断其是否是对称数。如果是,则输出YES,否则输出NO。例如:4224就是对称数。
练习3:用户输入一个用24小时制表示的时间,把它转换为用12小时制表示的时间并输出。如:输入1807(18点07分),则输出6:7PM
练习4:用户输入一个三位数,判断这个数是否时水仙花数。(水仙花数是指一个 3位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153))
多层分支结构
语法:
流程图:
练习:
练习1:用户输入一个数,判断这个数是数字、大写字母、小写字母还是其他字符。
练习2:用户输入三个整数,根据对三个数的比较关系显示如下信息:
- 如果三个数都不相等则显示0;
- 如果三个数中有两个数相等则显示1;
- 如果三个数都相等,则显示2。
练习3:编写程序,对不同车速进行判断,给出警告或者奖励
- 车速大于100并小于120,提示车辆超速;
- 车速大于120,给出警告;
- 车速大于80且小于100,给予奖励。
Switch-case结构
多重if和switch之间的区别
多重if | Switch-case | |
---|---|---|
相同点 | 都是用来处理多分支条件的结构。 | |
不同点 | 多重if选择结构的限制,特别适合某个变量处于某个连续区间时的情况。 | switch语句只能处理等值条件判断的情况,而且条件只能是整型变量或字符型变量。 |
循环结构
循环结构是指一段在程序中只出现一次,但可能会连续运行多次的代码。
while循环
while循环开始后,先判断条件是否满足,如果满足就执行循环体内的语句,执行完毕后再回来判断条件是否满足,如此无限重复;直到条件不满足时,执行while循环后边的语句。简单来讲就是说while循环是先判断后循环, 判断如果满足条件进入循环本次循环后再次判断。
语法:
流程图:
练习:
练习1:求出1-100之和。
练习2:求出1-100之间的偶数和。
练习3:用户输入一个四位整数,逆序输出。
do-while循环
do-while 循环先执行循环中的语句,然后再判断表达式是否为真, 如果为真则继续循环;如果为假, 则终止循环。因此, do-while 循环至少要执行一次循环语句。 简单来讲就是说while循环是先循环后判断。
语法:
流程图:
练习:
练习1:从键盘输入一个四位正整数,求其各位数字之和。
练习2:求出100 - 1000之内的水仙花数。
练习3:求出100 – 1000之内的对称数。
for循环
语法:
执行顺序:
1、初始化 2、条件3、循环操作 4、改变
初始化语句只在循环开始前执行一次,每次执行循环体时要先判断是否符合条件,如果循环条件为true,则执行循
练习:
练习1:求出1/1+1/2+1/3+1/4+…+1/10之和。
练习2:用户输入一个数,求出这个数的阶乘。例如:5,就是求出1*2*3*4*5
练习3:现有50瓶可乐,3个可乐瓶盖可以换一瓶可乐,那么一个人能喝多少瓶可乐。
两个关键字
break关键字
作用于完全结束一个循环,跳出循环体执行循环后面的语句。
continue关键字
作用是跳过本次循环体中余下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为仅结束本次循环。
break和continue之间的区别
- 用break语句可以使流bai程跳出switch语句体,也可以用break语句在du循环结构终止本层循环体,从而zhi提前结束本层循环。
- continue语句的作用是跳过本次循环体中余下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为仅结束本次循环。continue语句并没有使整个循环终止。