在代码中,一定会出现大量重复的功能,如果使用CV大法,暴力解决问题,会导致以下一些情况:
1、代码过于臃肿
2、代码维护性极差
3、代码阅读性极差
Java 有非常灵活的三种循环机制:
- while 循环
- dowhile 循环
- for 循环
1.3.2 while 循环:
while循环是一个控制结构,可以重复的特定任务次数。
语法结构:
while (循环条件) {
循环体;
循环条件变更;
}
执行流程:
当程序执行到 while 循环结构时,首先判断循环条件是否为 true,如果为 true 就执行循环体(循环条件变更),之后再回到循环条件判断,直到循环条件为 false 终止循环!
注意:
while 循环体中一定要带循环条件变更,否则会死循环!
终止死循环 Ctrl + C
publicclassDemo{
publicstaticvoidmain(String[] args){
int i = 1;
while(i < 4){
System.out.println("重要的事情说三遍:上课请认真请讲!");
i ++; // 循环条件变更
}
System.out.println(i);
//请循环输出周1到周7int w = 1;
while(w <= 7){
System.out.println("周" + w);
}
}
}
1.3.3 do-while 循环:
语法结构:
do {
循环体;
循环条件变更;
} while (循环条件);
执行流程:
当程序执行到 do-while 循环结构时,首先执行循环体(循环条件变更),再判断 while 之后的小括号里面的循环条件是否为 true,如果为 true 继续循环,如果为 false 终止循环!
publicclassDemo{
publicstaticvoidmain(String[] args){
int i = 1;
do{
System.out.println("别睡觉了");
i ++;
} while (i <= 3);
}
}
1.3.4 whlie 和 do-while 的区别:
1、while 循环每一次执行循环体,都是在判断之后执行的
2、do-while 循环执行循环体,第一次是没有任何判断的
建议:
能使用 while 循环,就不要使用 do- while 循环。
1.3.5 for 循环:
for 循环语句是一个循环控制结构,可以执行指定次数的循环。
语法结构:
for (初始化数据; 循环条件; 循环条件变更) {
代码块;
}
执行流程:
1、首先执行初始化数据操作,声明一种类型,可以初始化一个或多个变量。
2、判断循环条件:
-如果为 true 执行循环体
-如果为 false 循环终止,执行循环体后面的语句
3、执行一次循环后,执行循环条件变更
4、再次判断循环条件,继续执行循环
publicclassDemo{
publicstaticvoidmain(String[] args){
// 打印数字 1-10int i;
for(i = 1; i <= 10; i ++){
System.out.println(i);
}
}
}
1.3.6 For-Each 循环(增强for循环):
For-Each循环也叫增强型的for循环,或者叫foreach循环。
For-Each循环是JDK1.5的新特性。
For-Each循环的加入简化了集合的遍历。
语法格式:
for (数据类型 声明语句 : 表达式) {
代码块;
}
注意:
对增强 for 的目标会先进行是否为 null 的判断,所以增强 for 的目标不能为 nullpublicclassDemo{
publicstaticvoidmain(String[] args){
int i = 1;
do{
System.out.println("别睡觉了");
i ++;
} while (i <= 3);
}
}
例如:
输入 58
计算 5 + 6 + 7 + 8
输入 26publicclassTestImport{
publicstaticvoidmain(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个数字:");
int num1 =scanner.nextInt();
System.out.println("请输入第一个数字:");
int num2 =scanner.nextInt();
int count = 0;
// 如果 num1 值小于 num2 值,两个值交换if (num1 > num2) {
int temp = num2;
num2 = num1;
num1 = temp;
}
for (int i = num1; i <= num2; i++) {
count += i;
if (i < num2 - 1) {
System.out.print(i + " + ");
} elseif (i == num2 -1) {
System.out.print(i);
} else {
System.out.print(" + " + i + " = " + count);
}
}
}
}
2.6 整数逆序输出, 例如输入一个整数 12345,输出 54321
publicclassTestReverse{
publicstaticvoidmain(String[] args){
int num = 147258369;
while (num > 0) {
System.out.println(num % 10);
// num /= 10 --> num = num / 10
num /= 10;
}
// i /= 10 --> i = i / 10for (int i = num; i > 0; i /= 10) {
System.out.println(i % 10);
}
}
}