JAVA用“*”打一个直角三角形

来源:百度知道 编辑:UC知道 时间:2024/07/05 06:32:49
请高手们给看下这段代码错在哪 ?我最后总是比想输出的行数多一行,好像逻辑上有错误,就用2重循环做,输出空格换行的就算了,2重循环都是输*的!数组什么的俺不懂,能直接指出我的根本问题给追加分!JAVA人言出必行!
for(int i=1;i<=7;i++){
System.out.println("*");
for(int b=0;b<i;b++){
System.out.print("*");
}

}

最后如有指点代码的 望能运行成功后再提交
再次重申!提交代码的请自己亲自运行成功后再提交行么!
另外看清题目输出空格做换行的不需要!!!!!!!!!正确指出问题追加50分!两重循环一定要是都输出星的!第一重控制行!第二重控制列!4楼虽然不是我要的答案但也感谢你

class a{
public static void main(String [] args){
int i,j;
for(i=1;i<7;i++){ //i控制的是行数
for(j=1;j<i;j++) //j控制的是每列有i个*
System.out.print("*"); //这个print打印不换行
if(j==i)System.out.println(""); //起到换行作用
}
}
}

这次对了。哈哈。

你的问题出在println("*")上,
分析:
i=1
*

i=1;b=0
*
*

i=2
*
**

i=2;b=0
*
**
*

...

你看出来了吗?你的换行是有i决定的,同时,你又需要打一个*号,所以以此继续,你最后一行不满足i<7了,所以少了一个*.

你可以把System.out.println("*"); 改成System.out.println(""); 这么改后会出现第一排是空格。
或者你直接在你的代码最后加上一个System.out.println("*"); 一样的。哈哈。

引用你的程序,修改如下:
package com.zte;

public class PrintShape {

public static void PrinTriangle() {
for (int i = 1; i <= 7; i++) {
for (int b = 0; b < i; b++) {
System.out.print("*");<