控制语句在基础中还是比较重要,还带那么一点有趣

控制语句

选择结构:

if单选泽结构
if-else 双选择结构
if-else if - else多选择结构
switch结构

循环结构:

while循环
do-while循环(先执行再判断,为true继续执行,否则停止)
for循环(初始化声明的变量作用域为整个for循环体内,在循环体外无法访问)
嵌套循环( 在一个循环语句内部再嵌套一个或多个循环,称为嵌套循环。
while、do-while与for循环可以任意嵌套多层。)
break和continue语句
带标签的break和continue

下面是几个控制语句的例题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
* 复利公式:
F = p* ( (1+r)^n );
F 最终收入 p 本金 r 年利率 n 存了多少年
*/
public class Millionaire {
public static void main(String[] args) {
int p = 1000,n;
float r = 0.2F;
int F=0 ;
for (int i = 0; F<=100000; i++) {
F=(int) (p*((r/12)+1));
p+=1000;
if (F>=100000) {
n=i/12;
System.out.println(n);
}
}
}
}
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
* 黄金分割点:
* 寻找某两个数相除,其结果 离黄金分割点 0.618最近
分母和分子不能同时为偶数
分母和分子 取值范围在[1-20]
*/
public class GoldSenectionRatio {
public static void main(String[] args) {
// 寻找某两个数相除,其结果 离黄金分割点 0.618最近
//
// 分母和分子不能同时为偶数
// 分母和分子 取值范围在[1-20]
int range = 20; // 取值范围
float breakPoint = 0.618f; // 黄金分割点

float minDiff = 100; // 离黄金分割点的差值
int answerFenzi = 0; // 找到的分子
int answerFenmu = 0; // 找到的分母
for (int fenzi = 1; fenzi <= range; fenzi++) {
for (int fenmu = 1; fenmu <= range; fenmu++) {
// 分母和分子不能同时为偶数
if (0 == fenzi % 2 & 0 == fenmu % 2)
continue;

// 取值
float value = (float) fenzi / fenmu;
// 取离黄金分割点的差值
float diff = value - breakPoint;
// 绝对值
diff = diff < 0 ? 0 - diff : diff;

// 找出最小的差值
if (diff < minDiff) {
minDiff = diff;
answerFenzi = fenzi;
answerFenmu = fenmu;
}
}
}

System.out.println("离黄金分割点(" + breakPoint + ")最近的两个数相除是:" + answerFenzi + "/" + answerFenmu + "="
+ ((float) answerFenzi / answerFenmu));

}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.Scanner;
/*计算数的阶乘*/
public class Factorial {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入一个整数:");
int n = s.nextInt();
int fac = 1;
while(n>=1){
fac *=n;
n--;
}
System.out.println("阶乘是:" + fac);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/*水仙花数定义:
1. 一定是3位数
2. 每一位的立方,加起来恰好是这个数本身,比如153=1*1*1+5*5*5+3*3*3
*/
public class Daffodil {
public static void main(String[] args) {
int daffodil;
System.out.println("打印所有的水仙花数:");
for (int a = 0; a < 10; a++) {
for (int b = 0; b < 10; b++) {
for (int c = 0; c < 10; c++) {
if (a*100+b*10+c == (a*a*a)+(b*b*b)+(c*c*c)&&a*100+b*10+c>99) {
daffodil =a*100+b*10+c;
System.out.println(daffodil);
}
}
}
}
}
}

例题来源