几种循环的用法
这篇博客主要涉及for,while,do while循环的用法与区别
一.for
我们先来看一个简单的例题
public static int plus(int n) {
int sum = 0;
for (int i = 1; i <= n; i++) {
sum = sum + i;
}
return sum;
}
这是一个简单的求前n项和的程序
我们将它拆开来看
for后面的小括号里面写了3个语句,分别用;隔开
第一段语句是给循环控制变量赋初值
第二段语句是判断是否满足循环执行条件,如果满足则执行体,不满足则结束循环,执行for后面的语句
第三段语句是控制控制循环变量递增或递减,然后回到第二段语句继续执行
for循环的流程图
for循环可以做到的一些简单功能
例如:n的阶乘
public static int jieCheng(int n) {
int sum = 1;
for (int i = 1; i <= n; i++) {
sum = sum * i;
}
return sum;
}
此外for循环也是可以嵌套使用的
例如打印乘法表
public static void chengFaBiao() {
int sum = 0;
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
sum = i * j;
System.out.print(i+"*"+j+"="+sum+" ");
}
System.out.println();
}
}
二.while循环
与for循环一样,while也是一个与测试的循环,但是while在开始前,并不知道重复执行循环语句序列的次数。while语句按不同条件执行循环语句序列零次或多次。
while语句的流程图
while循环语句的执行过程如下
先计算表达式
如果满足条件,将进入循环体执行,执行完毕后跳回第一步再次计算表达式
如果不满足条件,则退出while循环体,执行后继语句
这里还是拿求前n项和举例
public static void QiuHe{
int i = 1,sum = 0;
while(sum<=100){
sum += i;
i++;
}
System.out.println(sum);//运行结果为5050
}
我们再看一个例子
public static void fun4(int num){
int sum=0;
int sumo=0;
int sumj=0;
int i=1;
int j=2;
int k=1;
while (i<=num){
sum +=i;
i++;
System.out.println(sum);
}
while (j<=num){
sumo+=j;
j=j+2;
System.out.println(sumo);
}
while (k<=num){
sumj+=k;
k=k+2;
System.out.println(sumj);
}
}
这是一个求前n项和,前n项中所有奇数和、偶数和的程序
需要注意的是奇数(偶数)在累加时应该+2,以及奇数(偶数)从几开始,例如偶数就要从j=2开始
三. do while
do语句按不同条件执行一次或多次循环语句序列。do while循环是while循环的后测试版本,该循环的测试条件在执行完循环体之后执行。 这里是do while与while的区别,当需要先判断再循环的时候用while,而在需要先循环再判断的时候可以用do…while。 因此,do while循环体至少会执行一次,而while循环体可能一次也不执行。
do whlie的流程图
do while循环语句的执行过程如下
当程序执行到do时,立即进入循环体执行循环语句序列,然后测试条件表达式。如果满足条件表达式,则返回do语句继续循环;否则退出循环,执行while语句的后继语句。
将上面while求前n项和程序改写为用do while求前n项和
public static void QiuHe( ){ //public static void QiuHe{
int i = 1,sum = 0; //int i = 1,sum = 0;
do{ //while(sum<=100){
sum += i; //sum += i;
i++; //i++;
} //}
while(i<=100); //System.out.println(sum);
System.out.println(sum); //}
}
将两段代码拿过来直观的对比一下
这篇博客还会有后续的for each循环介绍,另外博主在这里厚颜无耻的求下关注,希望能给从0开始学java的小伙伴一些帮助,如有不足还请指出,谢谢