我想要打印这种模式
*
**
*****
但输出显示如下
*
**
***
如何修改此代码以获取我想要的输出if if loop中应该包含哪些条件?
public class Star {
public static void main(String[] args) {
int i,j;
for(i=1;i<=3;i++)
{
for(j=1;j<=5;j++)
{
if(j<=i)
{
System.out.print("*");
}
else
{
System.out.print(" ");
}
}
System.out.println();
}
}
}
答案 0 :(得分:0)
如果我能理解你的序列,你可以使用:
for (int i = 1; i <= 3; i++) {
System.out.println(String.join("",
Collections.nCopies(i % 2 == 0 ? i : (i - 1) * 2 + 1, "*"))
);
}
输出
*
**
*****
这意味着:
i % 2 == 0 ? i : (i - 1) * 2 + 1
如果我是奇数,那么我重复这个星,否则重复它(i - 1) * 2 + 1
i repeat
1 1
2 2
3 5
答案 1 :(得分:0)
尝试此代码:-
for(int i=1;i<=3;i++)
{
for(int j=1;j<=i*i+1;j++)
{
if(j==1){
System.out.print("*");
System.out.println();
}
else if(j%2==1) {
System.out.print("*");
//System.out.println();
} else {
System.out.print("*");
}
}
使用mod运算符可以获得正确的输出。Java有一个您可能不熟悉的重要算术运算符,%,也称为模数或余数运算符。 %运算符返回两个数字的余数。例如10%3是1,因为10除以3剩下的余数为1。您可以像使用+或-这样的其他更常见的运算符一样使用%。
输出:-
*
**
*****
*********
迭代:-
i j(repeat)
1 1
2 2
3 3