java 循环详解(for while 双重for等)

for循环

适用于 区间判断 | 确定循环次数 的场合

执行流程:

	1.条件初始化
	2.条件判断
	3.不满足条件结束循环;满足条件则执行循环体语句体
	4条件变量
注意: 条件初始化只执行一次

语法结构:

for (条件初始化; 条件判断 ; 条件变化){
	循环体语句;
}

条件初始化 : 声明变量,初次赋值 如 : int i = 1;
条件判断 : 对条件|变量 进行判断,若满足要求,即结果为true,则执行本次循环体语句 { 大括号中的代码 } ;
如果结果为dalse ,即不满足要求, 则本次循环不可执行, 循环直接结束
条件变化: 自身值的改变 如每次循环i自加1 ,i++;

注意: 其中 i 有两个地方要注意

  1. 可以用来控制循环的次数,可以在循环体中当数据使用,且此数据是可变的
  2. 只能在循环体语句中使用(有固定的作用域)

举例: 循环打印十次,“我爱java,java爱我!!!”;
求1到10之间的和;

//循环打印十次,"我爱java,java爱我!!!!";
for(int i = 1; i <= 10; i++){
	System.out.println("我爱java,java爱我!!!!");
}

//求1到10之间的和;
int sum = 0;
for(int i = 1; i <= 10; i++){
	sum += i;
}
System.out.println(sum);

while 循环

适用于条件不需要声明,条件变化也无需声明的场合
语法:

条件初始化;
while(条件判断){
循环体语句;
条件变化
}
举例: 遍历1至100

int i = 1;
while (i<=100) {
	System.out.println(i);
	i++;
}

练习: 求1-100的偶数和,求1-100的奇数和
请找出[100,300]之间能被5整除的所有数,每行输出8个数,并在每个数后加上 " , "

// 求1-100的偶数和,求1-100的奇数和
	int sum1 = 0;
	int sum2 = 0;
	int a = 1;
	while ( a<=100 ) {
		if (a % 2 == 0) {
			sum1 += a;
		}
		if (a % 2 != 0) {
			sum2 += a;
		}
		a++;
	}
	System.out.println(sum1);
	System.out.println(sum2);
	System.out.println("==================");
	
	// 请找出[100,300]之间能被5整除的所有数,每行输出8个数,并在每个数后加上  " , "
	int con = 0; //计数器
	int c = 100; //条件初始化
	while (c <= 300) {
		if(c%5==0){
			if(con==0){
				System.out.print(c);
			}else{
				System.out.print(","+c);
			}
			con++;
			if(con==8){
				System.out.println();
				con=0;
			}
		}
		c++;
	}

扩展:
1.死循环

//for循环的死循环
for( ; ; ){

}

//while循环的死循环
while( true ) {

}

2.定义变量欺骗编译器, 让程序得以执行

boolean flag = falsewhile(flag){
	System.out.println("我是while...false");
}

do…while();

do…while() 与 while() 区别:

do…while() : 无论条件是否满足都至少执行一次
while : 先判断再执行, 不满足直接结束

​do…while 执行流程 : 先执行, 后判断. 满足条件则继续下一次执行. 不满足则执行本次后结束
用法:

条件初始化;
do{
	语句体:
}while(条件判断);

举例: 遍历1-100

int i = 1;
do{
	System.out.println(i);
	i++;
}while(1<=100)

练习: 求1-100的偶数和,求1-100的奇数和
请找出[100,300]之间能被5整除的所有数,每行输出8个数,并在每个数后加上 " , "

int sum = 0;
int sum1 = 0;
int a = 1 ;
do{
	if(e%2 == ){
		sum += a;
	}
	if(e%2 != 0){
		sum1 += a;
	}
	a++;
} while (a<=100);
System.out.println("1-100的偶数和:" + sum);
System.out.println("1-100的奇数和:" + sum1);	

System.out.println("======================";	
// 请找出[100,300]之间能被5整除的所有数,每行输出8个数,并在每个数后加上  " , "
int count = 0;	//计数器
int b = 100;    //条件初始化
do{				//循环开始
	if(b%5 == 0){				//当b%5为0时
		if(count==0){			//计数器为0时,即每行首位出现时
			System.out.print(b);	//打印b
		}else{
			System.out.print(","+b);//否则其他时候打印这个
		}
		count+; //每次循环开始,计数器都加一
		if(count == 8){  	//当计数器为8时,打印换行语句
			System.out.println();
			con11=0;        //同时初始化计数器
		}
	}
	b++;  //每次循环b自加一
}while(b<=300);


双重for循环嵌套

用法:

for( 条件初始化 ; 条件判断 : 条件变化 ){     //控制行    
		//代码  ;
	for( 条件初始化 ; 条件判断 : 条件变化 ){ //控制列 
	    //代码  ; 
	  }    
	    //代码  ;
}  

特点: 外层循环执行一次,内层循环执行一轮 ( 从开始到结束 )

//打印出如下图案
*	*	*	*	*
*	*	*	*	*
*	*	*	*	*
*	*	*	*	*
*	*	*	*	*
//普通循环
int count = 0;	//计数器
for (int i = 1; i <= 25; i++){	//控制循环范围
	System.out.print("* ");		//打印*,且不换行
	count++;					//计数器加一
	if(count == 5){				//计数器为5时
		System.out.println();	//打印换行
	}
}
//双重for循环
for (int i = 1; i <= 5; i++){	//外循环  控制行数
	for (int j = 1; j <= 5; j++){//内循环 控制列数
		System.out.print("* ");	//只管打印*,由外循环控制换行
	}
	System.out.println();//换行
}

//打印九九乘法表
for (int i =1; i<=9; i++) {
	for (int j = 1; j<=i; j++){
		System.out.println(j+"*"+i+"="+(j*i));
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值