本文最后更新于2022年6月1日,已超过 1 年没更新!内容可能已失效,请自行测试。
顺序结构
程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的
代码案例-顺序结构
/*顺序结构,从上往下*/
public class OrderDemo {
public static void main(String[] args) {
System.out.println("语句1");
System.out.println("语句2");
System.out.println("语句3");
System.out.println("语句4");
}
}
IF分支结构
代码案例-IF语句格式1
/*
* IF语句格式1
* if(关系表达式) {
* 语句体;
* }
执行流程:
* A:首先判断关系表达式看其结果是true还是false
* B:如果是true,就执行语句体
* C:如果是false,就不执行语句体
* */
public class IfDemo {
public static void main(String[] args) {
System.out.println("开始");
// 定义两个变量
int a = 10;
int b = 20;
if (a == b) {
System.out.println("a等于b");
}
int c = 10;
if (a == c) {
System.out.println("a等于c");
}
System.out.println("结束");
}
}
代码案例-IF语句格式2
/*
* if语句格式2:
* if(关系表达式) {
* 语句体1;
* }else {
* 语句体2;
* }
*
* 执行流程:
* A:判断关系表达式的值是true还是false
* B:如果是true,就执行语句体1
* C:如果是false,就执行语句体2
*/
public class IfDemo2 {
public static void main(String[] args) {
System.out.println("开始");
int a = 10;
int b = 10;
if (a == b) {
System.out.println("a和b相等");
} else {
System.out.println("a和b不相等");
}
}
}
代码案例-IF语句格式3
package IF;
/*
* if语句格式3:
* if(关系表达式1) {
* 语句体1;
* }else if(关系表达式2) {
* 语句体2;
* }else if(关系表达式3) {
* 语句体3;
* }
* ...
* else {
* 语句体n+1;
* }
*
* 执行流程:
* A:首先判断关系表达式1看其结果是true还是false
* B:如果是true,就执行语句体1
* 如果是false,就继续进行关系表达式2的判断看其结果是true还是false
* C:如果是true,就执行语句体2
* 如果是false,就继续进行关系表达式...的判断看其结果是true还是false
* ...
* D:如果没有一个为true的,就执行语句体n+1
*
* if语句的三种格式:
* 第一种格式适合做一种情况的判断
* 第二种格式适合做二种情况的判断
* 第三种格式适合做多种情况的判断
*/
public class IfDemo3 {
public static void main(String[] args) {
int x = 10;
int y;
if (x >= 3) {
y = 2 * x + 1;
} else if (x >= -1 && x < 3) {
y = 2 * x;
} else {
y = 2 * x - 1;
}
System.out.println(y);
}
}
SWITCH开关语句
案例代码-switch语句格式
package Switch;
/*
* switch语句格式:
* switch(表达式) {
* case 值1:
* 语句体1;
* break;
* case 值2:
* 语句体2;
* break;
* ...
* default:
* 语句体n+1;
* break;
* }
* 格式解释:
* 表达式:byte,short,int,char
* JDK5以后可以是枚举
* JDK7以后可以是字符串
* case:就是要和表达式进行比较的值
* break:表示中断,结束的意思。
* default:表示所有的情况都不匹配的时候,就执行语句体n+1。和if语句的else相似。
* 执行流程:
* A:计算出表达式的值
* B:拿计算出来的值和case后面的值依次比较,一旦有对应的值,就执行该处的语句,在执行过程中,遇到 break,就结束。
* C:如果所有的case都不匹配,就会执行default控制的语句,然后结束。
*/
public class SwitchDemo {
public static void main(String[] args) {
int a = 5;
switch (a) {
case 1:
System.out.println("星期1");
break;
case 2:
System.out.println("星期2");
break;
case 3:
System.out.println("星期3");
break;
case 4:
System.out.println("星期4");
break;
case 5:
System.out.println("星期5");
break;
case 6:
System.out.println("星期6");
break;
default:
System.out.println("星期日");
break;
}
}
}
WHILE循环
代码案例-while循环格式
package While;
/*
* while循环语句的基本格式:
* while(判断条件语句) {
* 循环体语句;
* }
* 扩展格式:
* 初始化语句;
* while(判断条件语句) {
* 循环体语句;
* 控制条件语句;
* }
*
*/
public class WhileDemo {
public static void main(String[] args) {
// 输出10次HelloWorld
int x = 10;
while (x >= 1) {
System.out.println("HelloWorld");
x--;
}
}
}
代码案例-while循环练习
package Switch;
/*
* 求1-100之和。
*/
public class WhileDemo {
public static void main(String[] args) {
int i = 1;
int sum = 0;
while (i <= 100) {
sum = sum + i;
i++;
}
System.out.println("SUM=" + sum);
}
}
案例代码-do--while格式
package Switch;
/*
* do...while循环的基本格式:
* do {
* 循环体语句;
* }while(判断条件语句);
* 扩展格式:
* 初始化语句;
* do {
* 循环体语句;
* 控制条件语句;
* }while(判断条件语句);
* 执行流程:
* A:执行初始化语句;
* B:执行循环体语句;
* C:执行控制条件语句;
* D:执行判断条件语句,看是true还是false
* 如果是true,回到B继续
* 如果是false,就结束
*
*/
public class DoWhileDemo {
public static void main(String[] args) {
int i = 1;
int sum = 0;
do {
sum = sum + i;
i++;
} while (i <= 100);
System.out.println(sum);
}
}
FOR循环
案例代码-for循环格式
package For;
/*
* for循环语句格式:
* for(初始化语句;判断条件语句;控制条件语句) {
* 循环体语句;
* }
*
* 执行流程:
* A:执行初始化语句
* B:执行判断条件语句,看结果是true还是false
* 如果是true,就继续执行
* 如果是false,就结束循环
* C:执行循环体语句
* D:执行控制条件语句
* E:回到B继续
*
* 需求:
* 在控制台输出10次”HelloWorld”的案例。
*/
public class ForDemo {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
System.out.println("HELLO WORLD!");
}
}
}
代码案例-for循环练习1
package For;
/*
* 需求:获取数据1-5和5-1
*/
public class ForDemo2 {
public static void main(String[] args) {
// 1-5
for (int i = 1; i < 6; i++) {
System.out.println(i);
}
System.out.println("-----------");
// 5-1
for (int i = 5; i >= 1; i--) {
System.out.println(i);
}
}
}
代码案例-for循环练习2
package For;
/*
* 需求:求出1-5之间数据之和
*/
public class ForDemo3 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 5; i++) {
sum = sum + i;
}
System.out.println("SUM=" + sum);
}
}
代码案例-for循环练习3
package For;
/*
* 需求:求出1-100之间偶数和
*/
public class ForDemo4 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) {
sum = sum + i;
}
}
System.out.println("SUM=" + sum);
}
}
代码案例-for循环练习4
package For;
/*
* 需求:在控制台输出所有的”水仙花数”
* 分析:
* 什么是水仙花数呢?
* 所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
* 举例:153就是一个水仙花数。
* 153 = 1*1*1 + 5*5*5 + 3*3*3
*
*/
public class ForDemo5 {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 10 / 10 % 10;
if (i == (ge * ge * ge + shi * shi * shi + bai * bai * bai)) {
System.out.println(i);
}
}
}
}
三种循环的区别
do…while循环至少会执行一次循环体。
for循环语句和while循环语句的小区别: 控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率
循环控制
代码案例-break的使用
package Control;
/*
* break:中断的意思
* 使用场景:
* A:switch语句中
* B:循环中
* 注意:
* 离开使用场景是没有意义的。
* 作用:
* 跳出循环,让循环提前结束
*/
public class BreakDemo {
public static void main(String[] args) {
for (int x = 1; x <= 10; x++) {
if (x == 3) {
break;
}
System.out.println("HelloWorld");
}
}
}
代码案例-continue的使用
package Control;
/*
* continue:继续的意思
* 使用场景:
* 循环中
* 注意:
* 离开使用场景是没有意义的
* 作用:
* 结束一次循环,继续下一次的循环
* 区别:
* break:退出循环
* continue:结束一次循环,继续下一次的循环
*/
public class ContinueDemo {
public static void main(String[] args) {
for (int x = 1; x <= 10; x++) {
if (x == 3) {
continue;
}
System.out.println(x);
}
}
}
循环嵌套
在一个循环语句之中嵌套其它的循环语句就称为循环嵌套处理,循环嵌套层次越多,时间复杂度越高
案例代码-打印乘法口诀表
package TimeTables;
public class Demo {
public static void main(String[] args) {
int sum;
for (int x = 1; x <= 9; x++) {
for (int y = 1; y <= x; y++) {
sum = x * y;
System.out.print(y + "x" + x + "=" + sum + "\t");
}
System.out.println();
}
}
}
案例代码-打印三角形
package TimeTables;
public class Demo2 {
public static void main(String[] args) {
int line = 5;
for (int x = 0; x < line; x++) {
for (int y = 0; y < line - x; y++) {
System.out.print(" ");
}
for (int y = 0; y <= x; y++) {
System.out.print("* ");
}
System.out.println();
}
}
}
Comments | NOTHING