网站首页 > java教程 正文
1、while循环
基本语法结构
while(条件表达式) {
//语句块;
}
执行过程
符合括号中的条件表达式,循环继续执行,直到不符合条件表达式,退出循环,注意使用过程中不能出现无出口的死循环
特点
先判断条件表达式,再执行循环的语句块,循环可能一次都不执行。
经典示例
计算1到100的所有整数和
public class Test01 {
public static void main(String[] args) {
int i = 1;
int num = 0;
while(i<=100) {
num = num + i;
i ++;
}
System.out.println(num);
}
}
//控制台输出:5050
分析:
定义一个变量i,用于表示1到100的整数,定义一个num,用于计算总和,当运行到while时,判断i是否小于等于100,如果小于100,则将每个数的总和加到num中,完成后i自增1,直到i等于101时,退出循环。
2、do while循环
基本语法结构
do {
循环语句
}while(循环条件);
执行过程
先执行do语句块中的循环操作,再去判断是否符合while中的循环条件,如果符合循环条件,则循环继续,如果不符合循环条件,则退出循环
特点
先执行循环操作,再判断循环条件是否符合,循环至少会执行一次
经典示例
1、逆序输出5~1
public class Test01 {
public static void main(String[] args) {
int i = 5;
do {
System.out.println(i);
i --;
}while(i >= 1);
}
}
//控制台输出:5 4 3 2 1
分析:
定义一个变量i,程序运行到do时,先输出变量i,然后将变量i自减1,再去判断循环条件,如果i大于等于1,则循环继续执行,如果循环条件不成立,则直到i==0,循环退出。
2、阶乘求和:1!+2!+ 3!+ ... +10!
public class Test01 {
public static void main(String[] args) {
int i = 1;
int sum1 = 0;
do {
int j = 1;
int sum2 = 1;
while(j <= i) {
sum2 = sum2*j;
j ++ ;
}
sum1 = sum1 + sum2;
i++;
}while(i <= 10);
System.out.println(sum1);
}
}
//控制台输出:4037913
分析:
外层do while循环用于控制10个阶乘的累加,定义一个变量i,用于表示十个阶乘,定义sum1用于表示10个阶乘的和,比如i=1,则sum1=1!;i=2,则sum1=1!+2!;i=3,则sum1=1!+2!+3!...依次类推;
内层嵌套的while循环用于求每个阶乘,定义一个变量j用于记录每个阶乘需要相乘的数的个数,比如j=1,则sum2=1;j=2,则sum2 = 1*2;j=3,则sum2=1*2*3...,依次类推;j<=i,则进行求阶乘的操作,即当i=1时,j计算的是1的阶乘;i=2时,j计算的就是2的阶乘,依次类推,完成操作后自增1;
最后当计算完10个阶乘和后,退出循环。
3、for循环
基本语法结构
for(初始化参数;判断循环条件;更新循环变量) {
循环体;
}
执行过程
先初始化参数,然后判断循环条件,如果符合循环条件,则执行循环体,然后更新循环变量,再去判断循环条件,如果循环条件符合,则继续执行循环体,之后更新循环变量,如果循环条件不符合,则退出循环。
特点
整个循环中,初始化参数只会执行一次。循环中可以使用continue关键字,用于跳过当次循环,继续下次循环。
for循环的应用范围最大,平时使用也是最多的。
public class Test01 {
public static void main(String[] args) {
for(int i=0;i<=3;i++) {
if(2==i) {
continue;
}
System.out.println(i);
}
}
}
//控制台输出: 0 1 3
经典示例
输出10个斐波那契数列:1、1、2、3、5、8、13 、21、34、55,从第三个数开始,该数是前面两个数的和
public class Test01 {
public static void main(String[] args) {
int i1 = 1;
int i2 = 1;
int printOut = 0;
System.out.println(i1);
System.out.println(i2);
for(int i=1;i<=8;i++) {
printOut = i1 + i2;
System.out.println(printOut);
i1 = i2;
i2 = printOut;
}
}
}
//控制台输出:1 1 2 3 5 8 13 21 34 55
分析:
因为前两个数固定为1,所以可以直接定义以及输出,要输出10个数,所以循环8次,从i=1开始循环,到i<=8循环结束,正好循环8次,定义一个printOut的变量用于计算前两个数之和,每次一次循环,先计算前两数之和,并在控制台输出,然后将i2的值赋值给i1,然后将计算出来的和(即后面的那个数)赋值给i2,这样每次循环时计算的i1 + i2实际都是不一样的值,比如i=1时,计算的是1+1,此时再去赋值,则i1变成了1,i2变成了2,;当i=2时,i1为2,i2为3,依次类推。
猜你喜欢
- 2024-11-03 详细总结Java for循环的那些坑(java的for循环中是如何执行的)
- 2024-11-03 11.Java中的 while 循环(java的for循环语句)
- 2024-11-03 传说级大佬总结的几道Java循环练习题(适合新人)
- 2024-11-03 java中的while循环(javado while循环)
- 2024-11-03 Java流程控制语句之循环结构--初学者适用
- 2024-11-03 What?Java循环还能嵌套循环,说好的禁止套娃呢!「第12集」
- 2024-11-03 Golang for 循环(golangfor循环特性改变)
- 2024-11-03 JavaScript for 循环(javascriptfor循环数字累加)
- 2024-11-03 java循环的这4种遍历方式,有些16K的程序员可能是懵逼的
- 2024-11-03 用了那么久的 Java For 循环,你知道哪种方式效率最高吗?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)