谁帮我讲下,java中如何用循环实现打印输出三角形,不只要代码,主要思路和逻辑,谢谢!

有点懂了,通过嵌套循环和换行实现的,每次还是只打印一个*,然后横着执行几次来个换行再继续横着执行。。。谢谢大家~

第1个回答  2012-04-22
大致思路是这样的...我以前写的.这个还是升级版,能根据你输入的字来决定*的个数,你去理解下代码,你的代码就很快能出来了.
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入值!");
int p = sc.nextInt();
for(int i=0;i<p;i++){
for(int j=0;j<p-i-1;j++){
System.out.print(" ");
}
for(int j=0;j<i+1;j++){//双重循环里面的 范围通常是个不定的值,与主循环的I相对应
System.out.print("* ");
}System.out.println();
}
for(int i=0;i<p-1;i++){
for(int j=0;j<i+1;j++){//j与i+1的差 即是 当前行 的重复 值
System.out.print(" ");
}
for(int j=0;j<p-1-i;j++){
System.out.print("* ");
}System.out.println();
}
}
第2个回答  2012-04-21
我就说下思路吧
打印三角形 其实就是循环嵌套
一个循环管行,一个循环管列
行就是空格和你要打印的“*”咯
看看空格的变化规律 也就是几个空格之后打印几个星了 这是列的也就是第一行
假设 第一行打印 5个空格一个*
那么第二行就是打印4个空格三个*
依次类推就可以了追问

还没想通循环变量 i 和输出语句之间怎么联系的,您能帮我用for循环写个第一行显示一个*,第二行显示两个*的代码吗?

第3个回答  2012-04-28
你记下每一行的前面空行和星的数量在其中找到关系来写个for循环的嵌套
第4个回答  2012-04-21
手贱的点了这个问题,整了半天没显示出来...我想显示的是空心的..郁闷好久不写都不会了

先别采纳别的答案,要不我就不想做了....xiexie....追问

呵呵,我没整明白用 i 和 j 控制syso里面的*个数是怎么实现的,弯没转过来。空心和实心的没关系吧,会实心或者空心的,大不了再加层循环,把实心的用空心替换。

追答

#include"stdio.h"
int main(){
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<5-i;j++)
printf(" ");
for(j=0;j<=2*i;j++)
printf("*");
printf("\n");
}
}
这个是实心的,不会再问

追问

呃。。。大哥,java的怎么写呢?没学过C语言。。。

追答

public class text {
public static void main(String[] args) {
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<5-i;j++)
System.out.print(" ");
for(j=0;j<=2*i;j++)
System.out.print("*");
System.out.print("\n");
}
}

}

本回答被提问者采纳
第5个回答  2012-04-27
循环嵌套一下就好