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++
```java 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(开始区间; 结束区间; 修改循环条件)
{ 循环体 }
}
执行流程:
```java //一共循环了2*3=6次 for(int i=1 ; i<=2; i++){ //外层循环,执行2次 for( int j=1; j<=3;j++){ //内层循环,执行3次 System.out.println(i+","+j); } } ```
例子:打印等腰直角三角形
分析:
```java // 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"); } ```