、使用 使用 for 循环语句,在控制台打印出一个五行的三角形,效果 循环语句,在控制台打印出一个五行的三角形
https://blog.csdn.net/qq_47896523/article/details/122619000
这里有很多种案例自己看看
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) { // 控制行数
for (int j = 1; j <= i; j++) { // 控制每行输出的数量
System.out.print("*");
}
System.out.println(); // 换行
}
}
}
public class Star {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("* ");
}
System.out.println();
}
}
}
外层循环控制行数,内层循环控制每一行中输出的星号数量。在第一行输出一个星号,第二行输出两个星号,以此类推,最后一行输出五个星号,就可以得到一个五行的三角形。
列表初始化中有一个容易出错的地方——成员初始化的顺序,可以看到,我这里初始化列表的顺序是year,day,month。但是实际上初始化的顺序和初始化列表中顺序毫无关联,初始化的顺序是按照参数在类中声明的顺序的, 也就是下面的year,month,day(如图)。
一般来说,初始值列表的初始化顺序不会影响什么,就如上面的代码,结果依然符合我们的预期:
不过如果一个成员是用另一个成员来初始化的,那么这两个成员的初始化顺序就很关键了,具体是什么意思呢?举个例子,将初始值列表做出如下更改:
Date(const int& year, const int month)
:_year(year),
_day(month),
_month(_day)
{
}
查看结果:
int main()
{
int i = 2020;
Date d2(i, 4);
cout << d2.getmoth() << endl;
cout << d2.getday() << endl;
return 0;
}
从形式上初始值列表的顺序来讲:
但实际上真的是这样吗? 我们来看看运行结果:
可以看到初始化成功的只有成员_day,实际上,初始化的顺序是按照参数在类中的声明顺序来的:
从而生成了上图的结果。