Java基础教程(002):Java判断和循环之循环结构(for、while、do...while)
文章目录
3.4 循环结构
什么是循环?
- 重复的做某件事
- 具有明确的开始和停止标记。
循环的分类
- for
- while
- do…while
3.4.1 for循环
格式:
for(初始化语句; 条件判断语句; 条件控制语句){
循环体语句;
}
执行流程:
- 执行初始化语句
- 执行条件判断语句,看其结果是true还是false
- 如果是false,循环结束
- 如果是true,执行循环条件
- 执行条件控制语句
- 回到
2
继续执行条件判断语句
练习:打印10次Hello World
public class ForDemo1 {
public static void main(String[] args) {
for(int i=1; i<=10; i++){
System.out.println("Hello World");
}
}
}
3.4.2 for循环练习
3.4.2.1 案例1
需求:在实际开发中,如果需要获取一个范围中的每一个数据,也会用到循环。
比如:求1-5的和。
分析:
- 循环1~5得到每一个数字
- 开始条件:1
- 结束条件:5
代码:
package fordemo;
/**
* @Author: wang
* @Create: 2024/11/17
**/
public class ForDemoTest {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 5; i++) {
sum += i;
}
System.out.println(sum);
}
}
3.4.2.2 偶数求和
需求:求1~100之间的偶数和。
代码:
package fordemo;
/**
* @Author: wang
* @Create: 2024/11/17
**/
public class ForDemoTest2 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
// 判断是否为偶数
if (i % 2 == 0) {
sum += i;
}
}
System.out.println(sum);
}
}
3.4.2.3 统计满足条件的数字
需求:键盘录入两个数字,表示一个范围。统计这个范围内中,既能被3整除,又能被5整除的数字有几个。
package fordemo;
import java.util.Scanner;
/**
* @Author: wang
* @Create: 2024/11/17
**/
public class ForDemoTest3 {
public static void main(String[] args) {
// 1、键盘录入两个数字
Scanner sc = new Scanner(System.in);
System.out.println("请录入一个数字表示范围的开始:");
int start = sc.nextInt();
System.out.println("请录入一个数字表示范围的结束:");
int end = sc.nextInt();
// 2、获取范围内的每一个数字
int count = 0; // 记录符合条件的数字个数
for (int i = start; i <= end; i++) {
// 3、对每一个数字进行判断,统计有多少个满足要求的数字
if(i % 3 == 0 && i % 5 == 0) {
System.out.println(i);
count += 1;
}
}
System.out.println("满足条件的数字有【" + count + "】个");
}
}
3.4.2 while循环
格式:
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
解释:
- 初始化语句只执行一次;
- 判断为true,循环继续;
- 判断为false,循环结束;
简单示例:利用while
循环打印1~100
public class WhileDemo1 {
public static void main(String[] args) {
int i = 1;
while (i<= 100) {
System.out.println(i);
i++;
}
}
}
3.4.3 for和while的对比
- 相同点
- 运行规则都是一样的。
- 区别:
- for循环中,控制循环的变量,因归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了。
- while循环中,控制循环的变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用。
- for循环知道循环次数或者循环范围。
- while循环不知道循环的次数和范围,只知道循环结束条件。
3.4.4 几个经典案例
【案例1】
求世界上最高山峰(8844430毫米),假如我有一张足够大的纸,他的厚度识0.1毫米,请问我折叠多少次,可以折成珠穆朗玛峰的高度?
/**
* @Author: wang
* @Create: 2024/11/17
**/
public class WhileTest1 {
public static void main(String[] args) {
// 1、定义一个变量用来记录山峰的高度
double height = 8844430;
// 2、定义一个变量用来记录纸张的初始厚度
double paper = 0.1;
// 3、定义一个变量用来统计次数
int count = 0;
while (paper <= height) {
// 折叠纸张
paper = paper * 2;
// 折叠一次,次数+1
count++;
}
System.out.println(count);
}
}
【案例2】
需求:一个整数X,如果X是一个回文数,打印true,否则返回false。
解释:回文数是指正序和倒序读都是一样的整数。例如,121是回文,123不是。
分析:把数字倒过来和原来的数字进行比较,一样的话即为true。所以关键就是如何把数字倒过来。
代码:
/**
* @Author: wang
* @Create: 2024/11/17
**/
public class WhileTest2 {
public static void main(String[] args) {
// 核心思路:把数字倒过来跟原来的数字进行比较
// 1、定义数字
int x = 121;
// 定义临时变量,记录x原来的值,用于最后进行比较
int temp = x;
int num = 0;
// 2、利用循环,从右往左获取每一位数字
while(x != 0){
int ge = x % 10;
// 修改一下x记录的值
x = x / 10;
// 把当前获取到的数字拼接到最右边
num = num * 10 + ge;
}
System.out.println(num);
System.out.println(num == temp);
}
}
【案例3】
需求:给定两个整数,被除数和除数(都是正数,切不超过int的范围)。将两数相除,要求不使用乘法、除法和%运算符。得到商和余数。
分析:
- 被除数 / 除数 = 商…余数
- int a = 100;
- int b = 90;
- 100 - 10 = 90;
- 90 - 10 = 80;
- …
- 10 -10 = 0;(余数)
- 减的次数就是商。
代码:
/**
* @Author: wang
* @Create: 2024/11/17
**/
public class WhileTest3 {
public static void main(String[] args) {
// 1、定义变量记录被除数
int dividend = 100;
// 2、定义变量记录除数
int divisor = 9;
// 3、定义变量统计减了多少次
int count = 0;
// 4、while循环
while (dividend >= divisor){
dividend = dividend - divisor;
count ++;
}
System.out.println("商为:" + count);
// 当循环结束之后dividend变量记录的就是余数
System.out.println("余数为:" + dividend);
}
}
3.4.5 do…while
格式:
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
原文地址:https://blog.csdn.net/WwLK123/article/details/143833850
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!