Java 循环控制详解【While & do… while】
在 Java 中,循环控制是程序设计中非常重要的部分,主要包括 while
循环和 do...while
循环。本文将详细介绍这两种循环的基本语法、执行流程及相关示例。
1. while
循环控制
基本语法
循环变量初始化;
while(循环条件){
循环语句;
循环变量迭代;
} //while 循环也有四要素 只是四要素放的位置和For不一样
while
循环的四要素与 for
循环类似,只是放置的位置不同。
执行流程分析
- 循环条件是返回一个布尔值的表达式。
while
循环是先判断条件再执行语句。
示例 1
题目:编写一个程序,使用 while 循环输出 “Hello this is Yhame.” 和一个递增的数字,从 1 到 10。循环结束后,输出当前的数字值。
public class While01 {
public static void main(String[] args) {
int i = 1;
while(i <= 10) {
System.out.println("Hello this is Yhame." + i);
i++; // 循环迭代变量
}
System.out.println("推出循环,继续。。。" + i); // 这里 i = 11
}
}
示例 2
题目:编写一个程序,使用 while 循环输出 1 到 100 之间所有能被 3 整除的数字。
public class WhileExercise01 {
public static void main(String[] args) {
int i = 1;
while(i <= 100) {
if(i % 3 == 0) {
System.out.println("i = " + i);
}
i++; // 将 i++ 写在 if 语句内部,会导致 i 在其他情况下无法递增,最终引发无限循环。
}
System.out.println("程序继续运行");
}
}
示例 3
题目:编写一个程序,使用 while 循环输出 40 到 200 之间的所有偶数。
public class WhileExercise02 {
public static void main(String[] args) {
int i = 40;
while(i >= 40 && i <= 200) {
if(i % 2 == 0) {
System.out.println("i = " + i);
}
i++; // 不能写在 if 循环里面; 将 i++ 写在 if 语句内部,会导致 i 在奇数情况下无法递增,最终引发无限循环。
}
System.out.println("The process continues");
}
}
2. do...while
循环控制
基本语法
循环变量初始化;
do {
循环语句;
循环变量迭代;
} while(循环条件);
do
和while
是关键字,也有循环四要素,只是位置不同。do...while
先执行语句,再判断条件,意味着循环体至少执行一次。while
后面有一个分号。while
和do...while
的区别需要注意。
do … while 循环的执行流程
示例代码
题目:编写一个程序,使用 do…while 循环输出 “Hello This is Yhame!”,直到循环变量达到 10 次。循环结束后,输出 “The process continues!”。
public class DoWhile01 {
public static void main(String[] args) {
int i = 1; // 循环变量的初始化
do {
System.out.println("Hello This is Yhame!");
i++; // 循环迭代变量
} while(i <= 10);
System.out.println("The process continues!");
}
}
结果
do...while
练习 1
题目:编写一个程序,使用 do…while 循环输出从 1 到 100 的数字。
public class DoWhileExercise01 {
public static void main(String[] args) {
int i = 1;
do {
System.out.println(i);
i++;
} while(i >= 0 && i <= 100);
}
}
do...while
练习 2
题目:编写一个程序,使用 do…while 循环计算并输出从 1 到 100 的数字之和。
public class DoWhileExercise02 {
public static void main(String[] args) {
int i = 1;
int sum = 0;
do {
sum += i;
i++;
} while(i > 0 && i <= 100);
System.out.println("总和为" + sum);
System.out.println("Procedure in progress!");
}
}
do...while
练习 3
题目:编写一个程序,使用 do…while 循环统计 1 到 200 之间能被 5 整除但不能被 3 整除的数字的个数,并输出这些数字。
public class DoWhileExercise03 {
public static void main(String[] args) {
// 统计1--200之间能被5整除但不能被3整除的个数
// (1) 使用do...while输出 1--200
// (2) 过滤能被5整除但不能被3整除的数
// (3) 统计满足条件的个数 int count = 0;
int i = 1;
int count = 0;
do {
if(i % 5 == 0 && i % 3 != 0) {
// i++; 这里添加i++会让程序跳不出循环
System.out.println("i = " + i);
count++;
}
i++;
} while(i > 0 && i <= 200);
System.out.println("这样的数一共有:" + count);
}
}
do...while
练习 4
题目:编写一个程序,模拟一个对话,问用户是否还钱。如果用户的回答不是 ‘y’,则继续询问并输出 “Yhame使出五连鞭!”。直到用户回答 ‘y’ 为止,最后输出 “还挺懂事”。
import java.util.Scanner;
public class DoWhileExercise4 {
public static void main(String[] args) {
// 如果李三不还钱,则Yhame一直使出五连鞭,直到李三说还钱为止
// [System.out.println("Yhame问:还钱吗? (y/n)")] do...while
Scanner in = new Scanner(System.in);
char answer = ' ';
do {
System.out.println("Yhame问:还钱吗?(y/n)");
answer = in.next().charAt(0); // 获取输入的第一个字符
System.out.println("他的回答是" + answer);
System.out.println("Yhame使出五连鞭!");
} while(answer != 'y');
System.out.println("还挺懂事");
}
}
以上是关于 Java 循环控制的详细介绍,涵盖了 while
和 do...while
循环的基本语法、执行流程及示例。希望对你理解 Java 循环控制有所帮助!