我正在使用ASCII艺术制作钻石。是的,我知道代码超出了草率。无论如何,最后一部分没有在一个else块内运行,留下钻石未完成。 完整代码: http://pastebin.com/14HnZADe
当前输出:
for循环:
for(int i = 1; i<=size; i++) {
for(int j=1; j<=size; j++) {
if(j<i) {
System.out.print(" ");
}
else if(j==i || j>i) {
System.out.print("*");
} else {//this block is not executing, and I do not know why.
for(int ki = 1; ki<=size; ki++) { // how do I fix it?
for(int n = size; n>=1; n--) {
if(j>=i) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
}
}
System.out.println();
}
答案 0 :(得分:1)
在到达else
区块之前,必须满足您的一个条件:
if(j<i) {
System.out.print(" ");
}
else if(j==i || j>i) {
j
小于i
或大于i
或等于i
。您已指定所有可能的条件,因此else
将永远不会执行...
答案 1 :(得分:0)
你有
if (j<i) {
//..
} else if (j==i || j>i) {
// ..
} else {
// this will never happen
}
但j==i || j>i
与j>=i
相同。 else块永远不会执行,因为j总是小于i或大于或等于i。没有其他选择!