文章目录
前言
大家好,我叫王山居,一个在CSDN上写写博客的不知名博主,如果我想…
简单,方法有三
其一:
其二:
其三:
编程语言的逻辑结构分类和上述三种方法差不多,无非三种:顺序结构、分支结构、循环结构
接下来,且听我细细道来…
一、顺序结构
顺序结构是三种结构中最简单的,就是按照代码书写的顺序一行一行的执行,书写顺序发生变化,执行的顺序就会发生改变,结果可能也会改变。
📑代码示例:
System.out.println("aaa");
System.out.println("bbb");
System.out.println("ccc");
//运行结果
aaa
bbb
ccc
System.out.println("aaa");
System.out.println("ccc");
System.out.println("bbb");
//运行结果
aaa
ccc
bbb
二、分支结构
2.1 if语句
📑代码示例1:
int x = 10;
int y = 10;
if (x == 10)
if (y == 10)
System.out.println("aaa");
else
System.out.println("bbb");
注意1:
if / else 语句中可以不加大括号 . 但是也可以写语句(只能写一条语句) else 总和位于它前面的最近的未配对的 if 配对, 但是实际开发中我们为了提高代码的可读性,不可将 else 悬空 , 最好加上大括号
📑代码示例2:
// 风格1
int x = 10;
if (x == 10) {
// 当满足条件
} else {
// 当不满足条件
}
// 风格2
int x = 10;
if (x == 10)
{
// 当满足条件
}
else
{
// 当不满足条件
}
注意2:
学过C语言的同学们会更加习惯风格2的代码书写形式.
但是在Java中风格1会更加的推荐把 ‘{’ 放在 if / else 同一行)
📑代码示例3:
int x = 20;
if (x == 10); {
System.out.println("hehe");
}
//运行结果
hehe
注意3:
此处多写了一个 分号, 导致分号成为了 if 语句的语句体, 而 { } 中的代码已经成为了和一个 if 无关的代码块
2.2 switch语句
✒️基本语法形式:
switch(整数|枚举|字符|字符串){
case 内容1 : {
内容满足时执行语句;
[break;]
}
case 内容2 : {
内容满足时执行语句;
[break;]
}
...
default:{
内容都不满足时执行语句;
[break;]
}
}
📑代码示例:
int day = 1;
switch(day) {
case 1:
System.out.println("数字1");
break;
case 2:
System.out.println("数字2");
break;
case 3:
System.out.println("数字3");
break;
default:
System.out.println("输入有误");
break;
}
🏸 代码结果:
💬代码解释:
- 就目前所学而言,不能做 switch 的参数的数据类型有 long、float、double、boolean
- 根据 switch 中值的不同, 会执行对应的 case 语句. 遇到 break 就会结束该 case 语句.
- 如果 switch 中的值没有匹配的 case, 就会执行 default 中的语句.我们建议一个 switch 语句最好都要带上 default.
- break 不要遗漏,不写 break 的时候, case 语句会依次向下执行, 从而失去了多分支的效果.
- switch 不能表达复杂的条件(类似于num > 10 && num < 20 ),这样的条件用 if 语句就可以轻易表达,switch 就不行.
- switch 虽然支持嵌套,但是美观性不高,不建议.
综上, 我们发现, switch 语句方便归方便,但使用局限性是比较大的.
三、循环结构
3.1 while循环
✒️基本语法形式:
while(循环条件){
循环语句;
}
📑代码示例:
计算 1 - 100 的和
int n = 1;
int result = 0;
while (n <= 100) {
result += n;
n++;
}
System.out.println(result);
🏸 代码结果:
注意:
当while后面的布尔表达式为真时即 true,则执行循环语句,完成一次循环之后再来判断表达式的值,重复操作,直到布尔表达式的值为假即 false 时,结束循环,该条while语句就执行完毕了。属于前测循环
和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句, 建议还是加上.
和 if 类似, while 后面的 ‘{’ 建议和 while 写在同一行.
和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行
3.2 break
break 的功能是让循环提前结束.
📑代码示例:
找到 100 - 200 中第一个 3 的倍数
int num = 100;
while (num <= 200) {
if (num % 3 == 0) {
System.out.println("找到了 3 的倍数, 为:" + num);
break;
}
num++;
}
🏸 代码结果:
💬代码解释:
while语句中有break,在循环中只要遇见break,就会停止后期的所有的循环,跳出循环语句,永久终止循环
3.3 continue
continue 的功能是跳过这次循环, 立即进入下次循环.
📑代码示例:
找到 10 - 20 中所有 3 的倍数
int num = 10;
while (num <= 20) {
if (num % 3 != 0) {
num++; // 这里的 ++ 不要忘记! 否则会死循环.
continue;
}
System.out.println("找到了 3 的倍数, 为:" + num);
num++;
}
🏸 代码结果:
💬代码解释:
执行到 continue 语句的时候, 就会立刻进入下次循环(判定循环条件), 从而不会执行到下方的打印语句
3.4 for循环
✒️基本语法形式:
for(表达式1;表达式2;表达式3){
循环体;
}
- 表达式1: 用于初始化循环变量.
- 表达式2: 循环条件,一定要是布尔表达式
- 表达式3: 更新循环变量
📑代码示例:
计算 5 的阶乘
int result = 1;
for (int i = 1; i <= 5; i++) {
result *= i;
}
System.out.println("result = " + result);
🏸 代码结果:
注意:
for( ; ; )无条件,无论如何都为真
for(xx; ;xx)表达式2不写就没有了判断条件,为死循环,需要靠break语句跳 出循环
for( ;xx; )表达式1不写,可以在for循环之前初始化循环变量,
表达式3不写,可以在循环过程中改变循环控制变量的值
3.5 do while循环
✒️基本语法形式:
do{
循环语句;
}while(循环条件);
📑代码示例:
打印 1 - 10
int num = 1;
do {
System.out.println(num);
num++;
} while (num <= 10);
注意:
- do while语句就是一种先斩后奏的后测循环,先执行循环体语句,然后求表达式的值。若表达式的值为真即true,返回继续执行循环体语句,如此重复,直到表达式的值为假即false,结束循环.
- do while 循环最后的分号不要忘记.
- 一般 do while 很少用到, 更推荐使用 for 和 while.
彩蛋:实现猜数字游戏
系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 “低了”, 如果输入的数字比该随机数大, 提示 “高了” , 如果输入的数字和随机数相等, 则提示 “猜对了” .
public class TestDemo{
public static void main(String[] args) {
Random random = new Random();//默认随机种子是系统时间
int guess = random.nextInt(100) + 1;
Scanner scanner = new Scanner(System.in);
while(true) {
System.out.println("请输入要输入的数字: (1-100)");
int num = scanner.nextInt();
if (num < guess) {
System.out.println("小了");
} else if (num > guess) {
System.out.println("大了");
} else {
System.out.println("猜对了");
break;
}
}
scanner.close();
}
}
完!