课程5-3的练习,老年人理解力差,需要老师解答一下一个表达式
老年人理解力差,需要辅导。首先上我认为写的比较清楚的表达式,运行了一下成功
以下表达式
package Loop;
public class StarDemo {
public static void main(String[] args) {
/*输出星号组成的梯形(使用嵌套for循环完成)
定义一个外重循环控制行数,
里面定义两个内重循环:
前一个用来控制每一行的空格个数(递减),
后一个用来控制每一行的星号个数(递增),
每行结束要进行换行*/
//外重循环 控制行数
for (int line = 1; line < 6; line++) {
//控制每一行的空格个数(递减)
for (int space = 4; space >= line; space--) {
System.out.print(" ");
}
//控制每一行的星号个数(递增)
for (int star = 1; star <= (2 * line) + 1; star++) {
System.out.print("*");
}
System.out.println();
}
}
}
我不理解的是 :
for (int star = 1; star <= (2 * line) + 1; star++) {
System.out.print("*");
当每一行递增, 星星应该增加2颗,在这个语句中是怎么实现的。 我问这个问题,是因为作为条件变得的第三个表达式 star++ 是递增一个啊?
我理解的for表达式含义:
int star = 1; s初始值 为 1
star <= (2 * line) + 1; 当条件S 小于 (2 * line) + 1
star++; star 的值递增一个
求解答,我没有看到哪一句是递增2个星号,所以不明白
正在回答
这样理解,当外重循环的line=1的时候,是第一行,这时候内重循环是for (int star = 1; star <= (2 *1) + 1; star++),也就是star<=3,那么循环是从1开始,执行三次,每次输出一个星号,所以输出三个星号。这样一行就输出完了。
第二次循环,line=2,for (int star = 1; star <= (2 *2) + 1; star++),也就是star<=5,也就是输出5个星号,第二行就输出完了。
所以,第一行输出3个,第二行输出5个,相差两个。
祝学习愉快!
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星