前言
Java有三大结构:顺序、选择(分支)和循环;
顺序结构是最常见的结构,按照常规的思路进行,并没有做到流程控制;而分支结构和循环结构充分地体现了流程控制的思想;分支结构利用if...else语句和switch语句;循环结构的实现借助for语句、while语句、do..while语句
还有流程跳转语句break、continue和return,通常用它们来控制流程的跳转。
正文
1.分支结构
-
if...else
分支结构中比较常见的是if...else语句;
if(<布尔表达式>) < 语句1>;[else<语句2>;]
语句1和语句2可以是任何语句(包括复合语句),else为可选部分;
-
switch
当程序有多个分支(通常超过2个时),使用switch语句比使用多个嵌套的if语句更简明。
switch(<表达式>) { case<常量表达式1>:[<语句1>] case<常量表达式2>:[<语句2>] ... case<常量表达式n>:[<语句n>] [default<语句n+1>] }
<表达式>最终值得类型必须是int或者是能自动转换成int型的类型,如byte,short,char,int,否则必须进行强制类型转换,但从Java7以后开始增强了switch语句的功能:也允许表达式为String类型(经过反编译,可以看到String最后都被转换成了int)
switch语句如过想达到多分支控制效果,每个case应当在末尾使用break语句,直接跳出整个switch语句。否则会出现 “case穿透 “ 现象:如果此case语句中没有break则按顺序继续执行下一个case,直到有break为止;
break和continue的区别:前者作用为:从switch语句、循环语句或标号标识的代码块中退出。后者:跳出当前循环,立即开始新一轮的循环;
2.循环结构
-
for循环
-
while和do...while循环
区别:前者最少执行 0 次,后者最少执行 1 次;
-
增强for
// 一般用于遍历集合或者数组 for (Element e: c) System.out.println(e);
实例1 打印九九乘法口诀表
package com.chou.homework; /** * @author Echohol * @created 2021/07/2021/7/12 - 16:37 * @project Basic */ public class NineTimesNine1 { public static void main(String[] args) { for (int i = 1; i < 10; i++) { for (int j = 1; j<=i; j++) { System.out.print(j + "*" + i + " = " + j * i + "\t"); } System.out.println(); } } }
控制台结果:
package com.chou.homework; /** * @author Echohol * @created 2021/07/2021/7/12 - 16:37 * @project Basic */ public class NineTimesNine2 { public static void main(String[] args) { for (int i = 1; i < 10; i++) { for (int j = 1; j<=i; j++) { System.out.print(j + " * " + i + " = " + j * i + "\t"); } System.out.println(); } } }
上下结果不同是因为第一个方法打印输出System.out.print(j + "*" + i + " = " + j * i + "\t");时没有在第一个乘号两边加上空格 应改为 System.out.print(j + " * " + i + " = " + j * i + "\t"),这样显示结果更为美观;
实例2 打印输出三角形
package com.chou.homework; /** * @author Echohol * @created 2021/07/2021/7/12 - 20:44 * @project Basic * * * 打印输出一个三角形 */ public class DemoTriangle { public static void main(String[] args) { String blank = " "; for (int i = 5; i > 0; i--) { for(int j = 0;j < i;j++) { System.out.print(blank); } for(int k =0;k<6-i;k++){ System.out.print("*"); } for (int l = 0; l < 5-i; l++) { System.out.print("*"); } for (int m = 0; m < i; m++) { System.out.print(blank); if(m==i-1){ System.out.println(); } } } } }
控制台输出:
* *** ***** ******* *********
总结
java的流程控制只要掌握了分支结构中的if...else语句和switch语句基本上能应对大部分情况;
而循环结构中的for循环必须掌握,while和do...while的区别和增强for的应用也需注意,break和
continue在这两个结构中的应用需熟练掌握
特别声明:转载请注明出处