今日学习主要内容为分支执行结构和循环执行结构。
这里主要是循环执行结构的思考和记录。
先是三种图形打印的思路
- 第一种
public static void main(String[] args) {
//外层循环控制行数
for(int i=0;i<=5;i++) {
//内层循环控制列数
//1 2 3 4 5
for(int j=0;j<i*1+1;j++) {
System.out.print("*");
}
System.out.println();
}
}
- 第二种
public static void main(String[] args) {
//外层循环控制行数
// 1 2 3 4 5
for(int i=0;i<5;i++) {
//内层循环控制列数
// 5 4 3 2 1
for(int j=0;j<5-i;j++) {
System.out.print("*");
}
System.out.println();
}
}
- 第三种
public static void main(String[] args) {
//1 2 3 4 5
for(int i=0;i<5;i++) {
//4 3 2 1 0
for(int j=0;j<4-i;j++) {
System.out.print(" ");
}
//1 3 5 7 9
for(int k=0;k<i*2+1;k++) {
System.out.print("*");
}
System.out.println();
}
}
输出结果
这里中心思想是外层循环控制行数,内层循环控制列数。
然后通过每层数量的关系找两个循环计数器之间的关系。
第三种需要多加一个循环在内层,先打印空格,思路大致相同。
之后是三位数水仙花数的计算。
PS:所谓“水仙花数”即一个整数满足其值等于各个数位的立方和。 如: 153 是一个水仙花数,因为 153= 1³+5³+3³
代码部分
public static void main(String[] args) {
//定义一个三位数变量
for(int i=100;i<1000;i++) {
//取各个位数
int j=i % 10;
int k=i / 10 % 10;
int l=i / 100 % 10;
//判断
if(i == j*j*j + k*k*k + l*l*l){
System.out.println(i);
}
}
}
输出结果
153
370
371
407
思路同样采用循环挨个检查,在循环内套一个if()
来判断是否符合。
这里卡住了一会儿是因为取模获得各个位数字的时候有误,下次记得多检查。