03-选择,分支,循环

1.基本if选择结构

if(布尔表达式) {

​ //代码块

}

2.if-else选择结构

if(布尔表达式) {

​ //代码块1

} else {

​ //代码块2

}

3.多重if选择结构

if(布尔表达式1) {

​ //代码块1

} else if(布尔表达式2) {

​ //代码块2

} else if(布尔表达式3) {

​ //代码块3

} else {

​ //代码块4

}

  • 【注意】相互排斥,当有一个条件为true时,其他均不在执行,适用于区间判断(区间条件:遵循从小到大或者从大到小)

4.嵌套if选择结构

if(外层布尔表达式) {

​ if(内层布尔表达式) {

​ //内层代码块1

​ } else {

​ //内层代码块2

​ }

} else {

​ //外层代码块

}

5.switch分支结构

switch(变量/表达式) {

​ case 值1:

​ 逻辑代码1;

​ case 值2:

​ 逻辑代码2;

​ case 值n:

​ 逻辑代码n;

​ break;

​ default:

​ 未满足时的逻辑代码;

}

  • 可判断的类型:byte, short, int, char, String(JDK7+)
  • 所有case的取值不可以相同
  • 默认case逻辑代码执行后会继续向下执行下一个case,break可以跳出整个分支

6.局部变量

  • 声明在函数内部的变量,必须先赋值再使用。
  • 作用范围从定义行开始到所在的代码块结束。
  • 【注意】多个变量,在重合的作用范围内,不可出现重名(命名冲突)。

7.循环的概念

  • 通过某个条件,重复执行一段逻辑代码。

8.while循环

// 初始部分

while(循环条件) {

​ // 循环操作

​ // 迭代部分

}

  • 初始部分、循环条件、循环操作、迭代部分
  • 先判断,再执行。适用于循环次数明确的情况。
  • 执行次数:0~n次
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class TestWhile {
public static void main(String[] args) {
int i = 1;
int sum = 0;

// 100以内偶数的和
while (i <= 100) {
if (i % 2 == 0) {
sum += i;
}
i++;
}

System.out.println(sum);
}
}

点击并拖拽以移动

输出:

2550

9.do-while循环

// 初始部分

do {

​ // 循环操作

​ // 迭代部分

} while(循环条件);

  • do-while循环至少会执行1次
  • 先执行,后判断。适用于循环次数不明确的情况
  • 执行次数:1~n次

10.for循环

for(①初始部分; ②循环条件; ④迭代部分) {

​ // ③循环操作

}

  • 初始部分只执行一次,且可以省略。
  • 执行次数:0~n次
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.Scanner;

public class TestFor {
public static void main(String[] args) {
// 求阶乘
int num = 0;
long product = 1; // 默认值必须为1,且需要考虑数据存储范围
Scanner input = new Scanner(System.in);

System.out.print("请输入一个数字求阶乘:");
num = input.nextInt();

for (int i = 1; i <= num; i++) {
product *= i;
}
System.out.println("阶乘结果:" + product);
}
}

点击并拖拽以移动

11.流程控制关键字

  • break:终止,跳出循环
  • continue:结束本次,进入下一次循环(跳过当前循环)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/* 人机大战·石头剪刀布游戏 */
import java.util.Scanner;

public class TestGuess {
public static void main(String[] args) {
// 人机猜拳(1剪刀、2石头、3布)三局两胜制
Scanner input = new Scanner(System.in);

int pcCnt = 0;
int pyCnt = 0;

for (int i = 1; i <= 3;) {
// 获取随机数 random()
java.util.Random random = new java.util.Random();
int pc = random.nextInt(3) + 1; // 3以内的随机整数:0/1/2 (1/2/3)

System.out.print("请玩家输入一个数字(1剪刀2石头3布):");
int py = input.nextInt();

// 平局
if (pc == py) {
System.out.println("平局。");
continue;
} else if ((py == 1 && pc == 3) || (py == 2 && pc == 1) || (py == 3 && pc == 2)) {
System.out.println("恭喜,大神。");
pyCnt++;
} else {
System.out.println("跟我斗,再练练吧。");
pcCnt++;
}
System.out.println("电脑出的是(1剪刀2石头3布):" + pc + "\n");

// 判断3局2胜的情况,程序结束
if (pyCnt == 2) {
System.out.println("3局2胜:玩家胜!!!");
break;
} else if (pcCnt == 2) {
System.out.println("3局2胜:电脑胜!!!");
break;
} else {
//nothing to do.
}

i++;
}
}
}

点击并拖拽以移动


03-选择,分支,循环
https://janycode.github.io/2016/04/28/02_编程语言/01_Java/01_JavaSE/01_基础语法/03-选择,分支,循环/
作者
Jerry(姜源)
发布于
2016年4月28日
许可协议