我要在图案下方打印
* *_* *_*_* *_*_*_* *_*_*_*_*
但是这里的问题是我无法消除最后一个_符号,这是我得到的输出
* *_*_ *_*_*_ *_*_*_*_ *_*_*_*_*_
int row =5;
String star="*";
String undrscr="_";
String s;
for(int i=1;i<=row;i++)
{//System.out.print(undrscr);
for(int j=1;j<=i;j++)
{
if(i==1)
{
System.out.print(star);
}
if(i>1)
{
System.out.print(star+""+undrscr);
if(j==i)
{
System.out.print("");
}
}
}
System.out.println();
}
答案 0 :(得分:0)
只有在if(i>1){...}
这样的情况下,您才能将块undrscr
更改为打印j!=i
:
if(i>1)
{
// print only star
System.out.print(star);
// print undrscr if j!=i
if(j!=i)
{
System.out.print(undrscr);
}
}
您将获得模式:
*
*_*
*_*_*
*_*_*_*
*_*_*_*_*
答案 1 :(得分:0)
将内部for循环更改为:
for (int i = 1; i <= row; i++) {
for (int j = 1; j <= i; j++) {
if (i == 1) {
System.out.print(star);
}
if (i > 1) {
System.out.print(star);
if (i - 1 >= j) { // <-- change made in this if-block only
System.out.print(undrscr);
}
if (j == i) {
System.out.print("");
}
}
}
System.out.println();
}
在打印下划线之前,请检查是否i - 1 >= j
,因为根据您的要求,下划线的数量总是比星的数量少1 。
答案 2 :(得分:0)
尝试一下:
//i was the rowNum and the number of stars of that row
for (int rowNum = 0; rowNum<=rows; rowNum++) {
int numStars = 0;
while (numStars<rowNum) {
System.out.print(star+undrscr);
numStars++;
}
System.out.println(star);
}
输出:
*
*_*
*_*_*
*_*_*_*
*_*_*_*_*
*_*_*_*_*_*
编辑:更好地使用这种方法,您将获得5行而不是6行。
for (int rowNum = 1; rowNum<=rows; rowNum++) {
int numStars = 1;
while (numStars<rowNum) {
System.out.print(star+undrscr);
numStars++;
}
System.out.println(star);
}
答案 3 :(得分:0)
尝试一下。
int row = 5;
String star = "*";
String undrscr = "_";
String s;
for (int i = 1; i <= row; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(star);
if (i != j)
System.out.print(undrscr);
}
System.out.println();
}
答案 4 :(得分:0)
在这种情况下,星星按排的顺序递增(即第一排1颗星,其次是2颗星,依此类推)。
逐步执行描述性逻辑,以打印带有下划线图案的直角三角形星星。
1)输入要从用户打印的行数。我们通过了5行。
2)要遍历行,请从0到5运行一个外部循环,循环结构为(i = 0; i <= 5; i ++)。
3)要遍历列,请运行一个从0到i的内部循环,循环结构为(j = 0; j <= i; j ++)。在内圈打印星内部。
4)在列循环中,我们检查i == j是否仅打印星号,否则打印星号和下划线。
5)打印一行的所有列后,移至下一行,即打印新行。
int i, j;
for(i=0; i<5; i++)
{
for(j=0; j<=i; j++)
{
if(i==j)
{
System.out.print("*");
}
else
{
System.out.print("*");
System.out.print("_");
}
}
System.out.println();
}