循环
1)循环:循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
2)循环语句的组成
初始化语句:一条或者多条语句,这些语句完成一些初始化操作。
判断条件语句:这是一个boolean 表达式,这个表达式能决定是否执行循环体。
循环体语句:这个部分是循环体语句,也就是我们要多次做的事情。
控制条件语句:这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束
3)循环结构
(1)for:应用率最高,固定次数循环
语法:for(初始化语句;判断条件语句;控制条件语句) {
循环体语句;
}
1.求出1-100之间偶数和[Java] 纯文本查看 复制代码
/*
需求:
A:求1-100之和。
B:求出1-100之间偶数和
*/
class ForTest1 {
public static void main(String[] args) {
//求1-100之和。
int sum1 = 0;
for(int x=1; x<=100; x++) {
sum1 +=x;
}
System.out.println("1-100之和是:"+sum1);
System.out.println("------------------");
//求出1-100之间偶数和
//方式1
int sum2 = 0;
for(int x=1; x<=100; x++) {
if(x%2 == 0) {
sum2 += x;
}
}
System.out.println("1-100偶数之和是:"+sum2);
System.out.println("------------------");
//方式2
int sum3 = 0;
for(int x=0; x<=100; x+=2) {
sum3 += x;
}
System.out.println("1-100偶数之和是:"+sum3);
System.out.println("------------------");
}
}
2.求5的阶乘[Java] 纯文本查看 复制代码 /*
需求:求5的阶乘。
什么是阶乘呢?
n! = n*(n-1)! 规则
n! = n*(n-1)*(n-2)*...*3*2*1
求和思想。
求阶乘思想。
*/
class ForTest2 {
public static void main(String[] args) {
//定义最终结果变量
int jc = 1;
//这里的x其实可以直接从2开始
//for(int x=1; x<=5; x++)
for(int x=2; x<=5; x++) {
jc *=x;
}
System.out.println("1-5的阶乘是:"+jc);
}
}
(2)while:先判断后执行,有可能一次都不执行
语法:
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
例如:我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?[Java] 纯文本查看 复制代码 /*
我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。
请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?
分析:
A:定义一个统计变量,默认值是0
B:最高山峰是珠穆朗玛峰:8848m这是最终的厚度
我现在有一张足够大的纸张,厚度为:0.01m这是初始厚度
C:我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?
折叠一次有什么变化呢?就是厚度是以前的2倍。
D:只要每次变化的厚度没有超过珠穆朗玛峰的高度,就折叠,统计变量++
E:输出统计变量。
*/
class WhileTest01 {
public static void main(String[] args) {
//定义一个统计变量,默认值是0
int count = 0;
//最高山峰是珠穆朗玛峰:8848m这是最终的厚度
//我现在有一张足够大的纸张,厚度为:0.01m这是初始厚度
//为了简单,我把0.01变成1,同理8848就变成了884800
int end = 884800;
int start = 1;
while(start<end) {
//只要每次变化的厚度没有超过珠穆朗玛峰的高度,就折叠,统计变量++
count++;
//折叠一次有什么变化呢?就是厚度是以前的2倍。
start *= 2;
System.out.println("第"+count+"次厚度是"+start);
}
//输出统计变量。
System.out.println("要叠"+count+"次");
}
}
(3)do...while:先执行后判断,至少执行一次 要素1与要素3相同时,首选do...while
语法:
初始化语句;
do {
循环体语句;
控制条件语句;
} while((判断条件语句);
- 写程序优先考虑for循环,再考虑while循环,最后考虑do…while循环
- break 跳出单层循环continue 跳出一次循环,进入下一次的执行;return 返回
9. 循环的嵌套要点:
- 循环中套循环,一般多行多列时使用,外层控制行,内存控制列
- 执行规则:外层循环走一次,内层循环走所有次
- 建议:嵌套的层数越少越好,能一层就不用两层,能两层就不用三层 若业务必须要通过三层以上的循环才能解决,说明设计有问题
- break只能跳出一层循环
案例代码:
请输出一个4行5列的星星(*)图案:[Java] 纯文本查看 复制代码 /*
需求:请输出下列的形状
*
**
***
****
*****
提示:外循环控制行数,内循环控制列数
*/
class ForForTest01 {
public static void main(String[] args) {
//通过简单的观察,我们看到这是一个行是5,列数是变化的形状
//我们先打印出一个5行5列的形状
for(int x=0; x<5; x++) {
for(int y=0; y<=x; y++) {
System.out.print("*");
}
System.out.println();
}
}
在控制台输出九九乘法表:
注意:
'\x' x表示任意,这种做法叫转移字符。
'\t' 一个制表符的位置(tabtab键)
'\r' 回车
'\n' 换行
*/
class ForForTest02 {
public static void main(String[] args) {
for(int x=1; x<=9; x++) {
for(int y=1; y<=x; y++) {
System.out.print(y+"*"+x+"="+y*x+"\t");
}
System.out.println();
}
}
|