一、while语句:
在程序中,需要重复性的做某件事;
1.1.1 while:
public class Test{
public static void main(String[] args){ // 求1-5所有整数的和
// 0+1+2+3+4+5
int i = 1; //变量初始化
int sum = 0;
while(i <= 5//控制循环条件){
sum = sum + i;//循环操作
i++;//循环条件变化
}
System.out.println("sum = " + sum);
}
}
while
1.1.2 while与 if 的结合使用:
public class Test15{
public static void main(String[] args){
// 求1-10所有偶数的和
int j = 1;
int sum = 0;
while(j <= 10){
// 业务逻辑:求偶数的和
if(j % 2 == 0){
sum += j;
}
j++;
}
System.out.println("sum = " +sum);
}
}
while、if
1.1.3 while的嵌套循环:
外层循环执行一次,内层循环支持n次;
双层循环解决了需要进行循环嵌套的问题 => 二维结构 => 表格结构;
外层循环控制行,内层循环控制列;
public class Test01{
public static void main(String[] args){ int i = 1;
while(i<=3){ int j = 1;
while(j <= 4){
System.out.print("* ");
j++;
}
System.out.println(); i++;
}
}
}
while、while
1.2 do···while:
public class Test{
public static void main(String[] args){
int sum = 0;
int i = 1;//变量初始化
do{
if(i % 2 == 0){
sum += i;//循环操作
}
i++;//循环控制变化
}while(i<=10//循环控制条件);
System.out.println(""+sum);
}
}
do while
while 与 do···while 的区别:
do…while循环先执行,后判断;while先判断,后执行。dowhile至少执行一次。
2.1 for 循环:
2.1.1普通 for 循环:
public class Test{
public static void main(String[] args){ //(变量初始化;循环控制条件;循环控制变化)
for(int i=0;i<=10;i++){
System.out.println(i);//循环操作
}
}
}
for
2.1.2 双层for循环:
for(int i=1;i<=3;i++){ for(int j=1;j<=4;j++){
System.out.print("* ");
}
System.out.println();
}
for、for
2.1.3 复杂的for循环:
int num = 10;
for(int i=0,j=num;i<=num;i++,j--){
System.out.println(i+"+"+j+"="+(i+j));
}
2.1.4 特殊的for循环:
public class Test13{
public static void main(String[] args){ // [1]表达式1在for循环外声明
/*
int sum = 0;
int i = 1;
for(;i<=10;i++){
sum += i;
}
System.out.println("i="+i);
System.out.println("sum = " + sum);
*/ // [2]省略表达式2 ==> 死循环
/*
int sum = 0;
for(int i = 1;;i++){
sum += i;
System.out.println("sum="+sum);
}
*/
// System.out.println("sum = " + sum); // [3]省略表达式3 => 可能导致死循环
/*
int sum = 0;
for(int i = 1;i<=10;){
sum += i;
System.out.println("sum="+sum); i++;
}
*/ int sum =0;
int i = 1;
for(;i<=10;){
sum += i;
System.out.println("sum="+sum); i++;
}
}
}
//死循环
for(;;){
}
总结:while和for
[1]while和for可以相互替换;
[2]如果明确知道循环次数,一定要for;如果不知道循环次数,优先使用while;