在程序开发的过程之中一共会存在三种程序逻辑:顺序结构、分支结构、循环结构,对于之前所编写的代码大部分都是顺序结构的定义,即:所有的程序将按照定义的代码顺序依次执行。
if 分支结构主要是针对于关系表达式进行判断处理的分支操作。对于分支语句主要有三类的使用形式,使用的关键字:if、else。
switch 是一个开关语句,它主要是根据内容来进行的判断,需要注意的是 switch 中可以判断的只能够是数据(int、char、枚举、String),而不能使用逻辑判断。
举例:
public static void main(String[] args) { int ch=2; switch (ch){ case 2: System.out.println("设置的内容是2。"); case 1:{ System.out.println("设置的内容是1。"); } default:{ System.out.println("没有内容满足。"); } } } /** * 输出结果: * 设置的内容是2。 * 设置的内容是1。 * 没有内容满足。 */ }
switch 语句进行设计的时候,如果你在每一个 case 后面没有追加 break 语句,那么会在第一个匹配的 case 之后继续执行,一直到全部的 switch 中后续代码执行完毕或者遇见 break。
举例:
public static void main(String[] args) { int ch=2; switch (ch){ case 2: System.out.println("设置的内容是2。"); break; case 1:{ System.out.println("设置的内容是1。"); break; } default:{ System.out.println("没有内容满足。"); break; } } } /** * 输出结果: *设置的内容是2。 */
所谓的循环结构指的是某一段代码被重复执行的处理操作,在程序之中提供有while 语句来实现循环的定义,该语句有两类使用形式:
while 循环:
public static void main(String[] args) { int sum = 0;// 保存最终的计算总和 int num = 1;//进行循环控制 while (num <= 100) { //循环的执行条件 sum += num; //累加 num++; //修改循环条件 } System.out.println(sum);//5050 }
do...while 循环:
public static void main(String[] args) { int sum = 0;// 保存最终的计算总和 int num = 1;//进行循环控制 do { //循环的执行条件 sum += num; //累加 num++; //修改循环条件 } while (num <= 100); System.out.println(sum);//5050 }
while 循环是先判断后执行,而 do...while先执行一次后判断。开发中能见到 do...while循环的几率几乎为1%,99%的情况下首选的肯定是 while 循环。
for 循环也是一种常规的使用结构。
举例:
public static void main(String[] args) { int sum = 0;// 保存最终的计算总和 for (int i = 0; i <= 100; i++) { sum += i; //累加 } System.out.println(sum);//5050 }
对于 while 和 for 循环的选择只有一个参考标准:
1. 在明确确定循环次数的情况下优先选择 for 循环;
2. 在不知道循环次数但是直到循环结束条件的情况下使用 while 循环;
在循环语句定义的时候还有两个控制语句:break、continue
1. break 主要的功能是退出整个循环结构
举例:
public static void main(String[] args) { for (int i = 0; i <10 ; i++) { if (i==3){ break; } System.out.print(i+" "); //0 1 2 } }
2. continue 严格来讲只是结束当前的一次调用(结束当前循环)
举例:
public static void main(String[] args) { for (int i = 0; i <10 ; i++) { if (i==3){ continue; } System.out.print(i+" "); //0 1 2 4 5 6 7 8 9 } }
当执行到了 continue 的时候就表示当前的语句之后后续代码不再执行,而直接进行后续的判断处理。
在一个循环语句之中嵌套其它的循环语句就称为循环嵌套处理,循环嵌套层次越多时间复杂度就越高,那么下面通过循环的嵌套观察两个简单的程序。
举例“:打印乘法口诀表
public static void main(String[] args) { for (int i = 1; i <= 9; i++) { for (int j = 1; j < 10; j++) { if (j > i) { break; } System.out.print(j + "*" + i + "=" + (i * j) + " "); } System.out.println(); } }
举例:打印三角形
public static void main(String[] args) { for (int i = 0; i <= 9; i++) { for (int j = 0; j < 9 - i; j++) { System.out.print(" "); } for (int j = 0; j < 2 * i + 1; j++) { System.out.print("*"); } System.out.println(); } }