作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云课认证讲师,全栈领域优质创作者。热爱技术、专注业务、开放合作、乐于分享,期待你我共同成长! 主打方向:Vue、SpringBoot、微信小程序
绝大多数编程语言,都具备三大结构,那就是顺序结构、选择结构和循环结构。
Java 也不例外,接下来将讲解以上三种结构的应用。
一、顺序结构
编程语言中最基本的结构就是顺序结构,除非程序使用了指定关键字,否则就是按照从上到下的规则,逐句执行代码。
请看下面的代码,从上到下依次为五条输出语句。
代码语言:javascript复制public class Main {
public static void main(String[] args) {
System.out.println("1");
System.out.println("2");
System.out.println("3");
System.out.println("4");
System.out.println("5");
}
}
最终输出的结果为:
代码语言:javascript复制1
2
3
4
5
Java 语句之间,是按照从上到下的顺序执行的,任何一个算法都离不开顺序结构这一种基本算法结构。
二、选择结构
2.1 单选择结构
在 Java 开发中,经常会根据一个条件来判断是否需要执行某段代码。
比如:
- 如果学生成绩大于等于 60 分,则输出及格。
- 如果身份证倒数第二位是奇数,则输出男。
- …
所以,开发者需要判断一个条件是否可行,然后才去执行代码。
也就是如果条件结果的布尔值,如果为 true 就执行,如果布尔值为 false 就不执行。
单分支选择结构代码如下所示。
代码语言:javascript复制public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int grade = sc.nextInt();
if(grade >= 60) {
System.out.println("及格");
}
}
}
提示:Scanner 是一个输入控制类,可以接受用户在输入框输入的值。
2.2 双分支选择结构
在 Java 开发中,往往会先判断某个条件是否可行,如果可行执行代码 A,否则执行代码 B。
比如:
- 如果学生成绩大于等于 60 分,则输出及格,否则输出不及格。
- 如果身份证倒数第二位是奇数,则输出男,否则输出女。
- …
双分支选择结构代码如下所示。
代码语言:javascript复制public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int grade = sc.nextInt();
if(grade >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
}
}
2.3 多分支选择结构。
在 Java 开发中,往往会先判断某个条件 X 是否可行,如果 X 可行执行代码 A;否则判断另外一个条件 Y 是否可行,如果 Y 可行执行代码 B,否则执行代码 C 或判断另外一个条件 Z。
这就是多分支选择结构。
比如:
- 如果学生成绩大于等于 80 分,则输出优秀,如果在 60 分到 80 之间,输出及格,否则输出不及格。
- 如果销售额大于 10 万输出 A,如果在 5 万 到 10 万之间,输出 B,小于 5 万输出 C。
- …
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int grade = sc.nextInt();
if(grade >= 80) {
System.out.println("优秀");
} else if(grade >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
}
}
提示:在实战开发中,请同学们不要过多的嵌套使用 if-else,避免对代码可读性造成影响。
除了 if 语句外,Java 还支持 switch 语句,代码如下所示。
代码语言:javascript复制public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int grade = sc.nextInt();
switch(grade){
case 5:
System.out.println("结果是 5");
break;
case 4:
System.out.println("结果是 4");
break;
case 3:
System.out.println("结果是 3");
break;
default:
System.out.println("结果小于 3");
}
}
}
关于 if 语句和 switch 语句的高级用法,会在下面的章节介绍,本节只需简单了解即可。
三、循环结构
3.1 while 循环
while 是最基本的循环,只要条件表达式为真,就会一直执行下去。
提示:while 有可能进行无限循环导致程序崩溃,请同学们注意循环退出条件。
比如要循环输出 0 到 9,代码如下:
代码语言:javascript复制public class Main {
public static void main(String[] args) {
int i = 0;
while(i < 10) {
System.out.println(i);
i ;
}
}
}
输出结果:
代码语言:javascript复制0
1
2
3
4
5
6
7
8
9
当程序需要一直执行时,也会用到 while 语句,如服务器事件监听。
当然建议使用其他技术实现,不要一直循环执行
大多数情况会让循环主动停止下来,所以需要一个让 while 循环判断失败的方式来结束循环。
3.2 do-while 循环
对于 do-while 循环,同学们只需记住一点:
如果不符合条件,while 一次都不会执行,而 do-while 至少会执行一次。
其实就是把执行前置了,代码如下。
代码语言:javascript复制public class Main {
public static void main(String[] args) {
int i = 0;
do {
System.out.println(i);
i ;
} while (i < 10);
}
}
while 循环规则是先判断后执行,do…while 循环规则是先执行后判断。
3.3 for 循环
Java 中的循环可以只用 while 或 do-while 来实现,但 Java 还提供了一种简易版的循环,那就是 for 循环。
for循环语句是支持迭代的一种通用结构,使用起来比较灵活,但执行之前,执行的次数已经定下来了,代码如下所示。
代码语言:javascript复制public class Main {
public static void main(String[] args) {
for(int i = 0; i < 10; i ) {
System.out.println(i);
}
}
}
对于循环的学习,最通俗易懂的就是九九乘法表了,直接上代码!
代码语言:javascript复制public class Main {
public static void main(String[] args) {
for(int i = 1; i < 10; i ) {
for(int j = 1; j <= i; j ) {
System.out.print(i " * " j " = " (i * j) "; ");
}
System.out.println();
}
}
}
输出结果如下
代码语言:javascript复制1 * 1 = 1;
2 * 1 = 2; 2 * 2 = 4;
3 * 1 = 3; 3 * 2 = 6; 3 * 3 = 9;
4 * 1 = 4; 4 * 2 = 8; 4 * 3 = 12; 4 * 4 = 16;
5 * 1 = 5; 5 * 2 = 10; 5 * 3 = 15; 5 * 4 = 20; 5 * 5 = 25;
6 * 1 = 6; 6 * 2 = 12; 6 * 3 = 18; 6 * 4 = 24; 6 * 5 = 30; 6 * 6 = 36;
7 * 1 = 7; 7 * 2 = 14; 7 * 3 = 21; 7 * 4 = 28; 7 * 5 = 35; 7 * 6 = 42; 7 * 7 = 49;
8 * 1 = 8; 8 * 2 = 16; 8 * 3 = 24; 8 * 4 = 32; 8 * 5 = 40; 8 * 6 = 48; 8 * 7 = 56; 8 * 8 = 64;
9 * 1 = 9; 9 * 2 = 18; 9 * 3 = 27; 9 * 4 = 36; 9 * 5 = 45; 9 * 6 = 54; 9 * 7 = 63; 9 * 8 = 72; 9 * 9 = 81;
四、课时小结
在本课时中,首先讲解了 Java 的顺序结构、选择结构和循环结构的概念,接着演示了三种结构的具体应用。在下一节课时中,将讲解 Java 的 if 条件语句的语法。