for循环与嵌套(水仙花数与三角形的打印)

一.for循环

语法:
for(开始区间; 结束区间; 修改循环条件){
循环体;
}

开始区间:初始化表达式(确定开始)int i = 1;
结束区间:逻辑表达式(确定结束) int i <= 5;
修改循环条件:控制循环条件的表达式,改变变量的值 i++

执行流程:

  1. 初始化表达式,只执行1次
  2. 逻辑表达式 如果为true,则执行循环体 如果为false,则结束循环
  3. 当循环体执行完后,执行修改循环条件的语句
  4. 接下来,回到第2步,直到条件表达式的值为false,则循环结束

例子:水仙花数(所谓水仙花数是指一个数3位数,其
每位数字立方和等于其本身,如153 = 111 + 333 + 555)
分析:开始区间 int i=100;
结束区间 i<=999;
步长 i++

for (int i = 100; i <= 999; i++) {
			// 判断 i == g*g*g + s*s*s +b*b*b
			int g = i % 10; // 求个位数
			int s = i / 10 % 10; // 求十位数
			int b = i / 100; // 求百位
			if (i == g * g * g + s * s * s + b * b * b) {
				System.out.println(i);
			}
		}

在这里插入图片描述

二.for循环嵌套

语法:

for(开始区间; 结束区间; 修改循环条件) {
for(开始区间; 结束区间; 修改循环条件)
{ 循环体 }
}

执行流程:

//一共循环了2*3=6次
for(int i=1 ; i<=2; i++){ //外层循环,执行2次
for( int j=1; j<=3;j++){ //内层循环,执行3次
System.out.println(i+","+j);
}
}

例子:打印等腰直角三角形
分析:

// i是行数; j是*的个数; k(每行第1个*前面的空格个数)
i            j    k
1    *       1    2
2   ***      3    1
3  *****     5    0
//一般这种打印图形的题目只要找出i与j和i与k的关系,就可以解出来
// 要j和i找关系 j=2*i -1
// 要k和i找关系 k=3-i

   for (int i = 1; i <= 3; i++) { //一共有三行,i<=3
			// 先打印空格
			for (int k = 1; k <= 3 - i; k++) { //空格k与i的关系3-i
				System.out.print(" ");//这里引号里是一个空格
			}
			// 再打印星星*
			for (int j = 1; j <= 2 * i - 1; j++) {//星星j与i的关系为2*i-1
				System.out.print("*");
			}
			// 最后换行,不换行的话,这三行的*会打印在同一行上
			//外循环i执行了3次,所以换了三次行
			System.out.print("\n");
		}

在这里插入图片描述
在这里插入图片描述

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页