JavaSE回顾(二):程序逻辑控制

在Java中程序有三种结构,分别是顺序结构、分支结构、循环结构。

一、顺序结构

顺序结构顾名思义就是:按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。简单来说,写在前面的先执行,写在后面的后执行。顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构。

在这里插入图片描述

二、分支结构

在这里插入图片描述

1.if语句

  • 基本语法形式1
if(布尔表达式){
//条件满足时执行代码
}
  • 基本语法形式2
if(布尔表达式){
//条件满足时执行代码
}else{
//条件不满足时执行代码
} 
  • 基本语法形式3
if(布尔表达式){
//条件满足时执行代码
}else if(布尔表达式){
//条件满足时执行代码
}else{
//条件都不满足时执行代码
} 

在写这种if语句的时候有几个需要注意的点:
1.悬垂else问题

int x = 10;
int y = 10;
if (x == 10)
    if (y == 10)
        System.out.println("aaa");
    else
System.out.println("bbb");
System.out.println("ccc");
/*打印结果
aaa
ccc
*/

if / else 语句中可以不加大括号,也可以写语句(只能写一条语句)。此时 else 是和最接近的 if 匹配。但是实际开发中不建议 这么写, 最好加上大括号 。

2.分号问题

int x = 20;
if (x == 10); {
System.out.println("hehe");
}
// 运行结果
hehe 

在判断语句后多写了一个 分号, 导致分号成为了 if 语句的语句体, 而 { } 中的代码已经成为了和一个 if 无关的代码块

2.switch语句

switch(整数|枚举|字符|字符串){
    case 内容1 : {
        内容满足时执行语句;
        [break;]
    }
    case 内容2 : {
        内容满足时执行语句;
        [break;]
    }
    ...
    default:{
        内容都不满足时执行语句;
        [break;]
    }
} 

Switch(语句表达式)
Switch语句表达式中可以填基本数据类型:byte,short,char,int;
引用数据类型:枚举(在JDK1.5引入),string字符串(JDK1.7引入)

int day = 1;
switch(day) {
    case 1:
	System.out.println("星期一");
    case 2:
	System.out.println("星期二");
	break;
}
// 运行结果
星期一
星期二 

我们发现, 不写 break 的时候, case 语句会依次向下执行, 将会失去了多分支的效果 。

注意事项

  • case后面只能是常量,不能是变量,而且多个case后面的值互不相同。
  • default不建议省略,其作用是对不正确的情况给出提示。
  • break不可省略,若省略,会出现case穿透现象,即若无break则程序会继续执行语句直到遇见break语句为止。

三、循环结构

1.while循环

基本语法格式:

while(循环条件){
循环语句;
} 

代码示例:计算 1 - 100 的和

int n = 1;
int result = 0;
while (n <= 100) {
    result += n;
    n++;
}
System.out.println(num);
// 执行结果
5050 

2.for循环

基本语法:

for(表达式1;表达式2;表达式3){
    循环体;
} 
  • 表达式1: 用于初始化循环变量.
  • 表达式2: 循环条件
  • 表达式3: 更新循环变量

优势:相比于 while 循环, for 循环将这三个部分合并在一起, 写代码时不容易遗漏 。
代码示例:计算 1 - 100 的和 。

int sum = 0;
for (int i = 1; i <= 100; i++) {
    sum += i;
}
System.out.println("sum = " + sum);
// 执行结果
5050 

3.do while循环

基本语法:

do{
    循环语句;
}while(循环条件); 

与while循环不同之处在于:先执行循环语句, 再判定循环条件 。
代码示例:打印1-10

int num = 1;
do {
System.out.println(num);
num++;
} while (num <= 10)

4.关于break和continue

1.break
break的作用是跳出当前循环;但是如果是嵌套循环,则只能跳出当前的这一层循环,只有逐层break才能跳出所有循环。
代码示例:

for (int i = 0; i < 10; i++) {  
    if (i == 6) { 
         break;  
         // 在执行i==6时强制终止循环,i==6不会被执行  
    }
    System.out.println(i);  
}  
//输出结果为0 1 2 3 4 5 ;6以后的都不会输出  

2.continue
continue的作用是终止当前循环,但是不跳出循环,且本次循环中continue后面的语句不会执行了,随即开始下一趟循环。
代码示例:

for (int i = 0; i < 10; i++) {  
    if (i == 6)  {
        continue;  
      // i==6不会被执行,而是被中断了    
    } 
    System.out.println(i);  
}  
输出结果为0 1 2 3 4 5 7 8 9;只有6没有输出

5.三种循环异同点

1.相同点
无论哪一种循环结构,都有4个必不可少的部分:
初始部分、循环条件、循环体、更新循环变量。

2.不同点

  • 在执行顺序上:
    while:先判断循环条件,再执行;
    do while:先执行一次,再判断循环条件;
    for:先判断循环条件,再执行。
  • 在应用场景上:
    循环次数确定的情况,通常选用for循环;
    循环次数不确定的情况,使用while循环;
    do while循环挺少用的。
发布了27 篇原创文章 · 获赞 57 · 访问量 936

猜你喜欢

转载自blog.csdn.net/A_K_L/article/details/104687494