Java编程:循环结构详解与示例
116 浏览量
更新于2024-08-30
收藏 72KB PDF 举报
"Day03课程讲解了循环结构的三种主要类型:for循环、while循环和do while循环,并重点解析了for循环的组成和工作原理。for循环包括初始化部分、循环条件部分、循环体部分和迭代部分。在for循环中,流程是从初始化开始,接着检查循环条件,如果条件为真,则执行循环体,然后进行迭代,再次检查条件,如此循环,直到条件变为假。for循环的语法格式清晰地展示了这一过程。此外,课程还通过实例演示了如何使用for循环计算1到100之间所有奇数的和,以及找出1到100内所有7的倍数的个数和总和,以及输出所有的水仙花数。"
在编程中,循环结构是必不可少的组成部分,它们用于重复执行一段代码,直到满足特定条件为止。在这个Day03的学习中,我们关注的是三种主要的循环结构:
1. **for循环**:for循环是最常用的循环结构之一,适用于已知循环次数或条件的情况。它的基本结构如下:
```java
for(初始化部分; 循环条件部分; 迭代部分) {
循环体部分;
}
```
- **初始化部分**:在循环开始前只执行一次,通常用于设置循环变量的初始值。
- **循环条件部分**:在每次循环开始时检查,若为真则继续执行循环体,否则跳出循环。条件通常为一个布尔表达式。
- **循环体部分**:包含循环中要执行的代码。
- **迭代部分**:在每次循环体执行后执行,通常用于更新循环变量。
2. **while循环**:适用于条件未知,但需要在满足某个条件时停止循环的情况。结构如下:
```java
while(循环条件) {
循环体部分;
}
```
这种循环会在每次循环开始时检查条件,如果条件为真,就会执行循环体,然后再次检查条件,如此反复。
3. **do while循环**:与while循环类似,但不同之处在于do while循环至少会执行一次循环体,即使条件一开始就为假。结构如下:
```java
do {
循环体部分;
} while(循环条件);
```
通过示例,我们可以看到for循环的实际应用。例如,计算1到100之间所有奇数的和,代码如下:
```java
int sum = 0; // 初始化总和为0
for (int i = 1; i <= 100; i++) { // i从1开始,每次增加1,直到100
if (i % 2 == 1) { // 如果i是奇数
sum += i; // 将i加到总和上
}
}
System.out.println(sum); // 输出总和,结果为2500
```
另一个例子是找出1到100内所有7的倍数的个数和总和:
```java
int sum = 0; // 初始化总和为0
int count = 0; // 初始化计数器为0
for (int i = 1; i <= 100; i++) { // 检查每个数
if (i % 7 == 0) { // 如果是7的倍数
sum += i; // 加到总和上
count++; // 计数器加1
}
}
System.out.println("1~100内所有7的倍数的个数为:" + count + ",和为:" + sum); // 输出结果
```
最后,我们还学习了如何输出3位数中的水仙花数。水仙花数是指一个3位数,其各位数字立方和等于其本身:
```java
for (int i = 100; i <= 999; i++) { // 遍历3位数
int a = i % 10; // 取个位数
int b = i / 10 % 10; // 取十位数
int c = i / 100; // 取百位数
int sum = a * a * a + b * b * b + c * c * c; // 计算立方和
if (sum == i) { // 如果立方和等于原数
System.out.print(i + " ");
}
}
```
这些实例充分展示了for循环在解决实际问题中的灵活性和实用性。通过深入理解和熟练掌握这些循环结构,开发者可以在编写程序时更高效地控制代码的执行流程。
2024-03-09 上传
2018-01-09 上传
2021-03-10 上传
2024-10-30 上传
weixin_38645198
- 粉丝: 5
- 资源: 956
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库