当前位置:编程学习 > JAVA >>

求大神,一个比较挑战的问题。没懂。

用for循环打印菱形。。
public class Var_02 {
public static void main(String args[]){
for(int i=1;i<=7;i+=2){
for(int kong=7;kong>i-1;kong--){
System.out.print(" ");
}
for(int xing=1;xing<=i;xing++){
System.out.print("* ");
}
       System.out.println();
}
for(int j=1;j<=5;j+=2){
for(int kong1=1;kong1<j+3;kong1++){
System.out.print(" ");
}
for(int xing1=5;xing1>=j;xing1--){
System.out.print("* ");
}
System.out.println();
}
    }
没看懂,基本的for语句的执行顺序知道,可是还是没明白。。请大神详细说明。。谢谢了。
从头说吧。本人初学者。。谢谢了 --------------------编程问答--------------------
public class Test {

public static void main(String args[]) {
//外层循环控制行,这个就是1+2+2+2  4行
for (int i = 1; i <= 7; i += 2) {
//这个本来打印的是空格,现在用横线代替 不知道楼主可以看懂吧
//就是一个倒直角三角形的输出  i-1的值 0 2 4 6 7-(i-1)代表每行横线数(空格数)
for (int kong = 7; kong > i - 1; kong--) {
System.out.print("-");
}
//打印* 注意后面有一空格 1<1 1<3 1<5 1<7  每次条件 一个正等腰三角形
for (int xing = 1; xing <= i; xing++) {
System.out.print("* ");
}
//每输出完一行的* 换行
System.out.println();
}
//这个基本相同输出了3次 空格那个三角形是正的
for (int j = 1; j <= 5; j += 2) {
for (int kong1 = 1; kong1 < j + 3; kong1++) {
System.out.print("-");
}
//倒等腰三角形
for (int xing1 = 5; xing1 >= j; xing1--) {
System.out.print("* ");
}
//换行
System.out.println();
}
}
}

刚接触的时候确实有点麻烦,自己多想想,多看看就好!!! --------------------编程问答-------------------- 楼主没有彻底理解for循环 --------------------编程问答-------------------- 好复杂,要把复杂问题简单化。
	public static void main(String args[]) {
printRhomb(4);
}

public static void printRhomb(int size) {
int max = size * 2 - 1;
for (int i = 1; i <= max; i++) {
for (int j = 1; j <= max; j++) {
System.out.print(Math.abs(size - i) + Math.abs(size - j) < size ? " *" : "  ");
}
System.out.println();
}
}
--------------------编程问答-------------------- 这不是java50题里面的么。。 --------------------编程问答-------------------- 第一部分for循环是打印的等边三角形,后面的是打印的到三角形!
--------------------编程问答-------------------- 用debug走一遍程序就会很清楚的了
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,