所以我应该使用for循环绘制一个山,使用if语句来决定使用什么字符。这就是我最初的所作所为。
for (int y = intMaxHeight; y >= 0; y--){
for (int x = 0; x < arr.length; x++){
double height = arr[x];
if (y == 0){
System.out.print("-");
}
if (((y - height) < 1) && ((y - height) > -1)){
System.out.print("^");
}
if (y > height){
System.out.print(" ");
}
if ( y < height){
System.out.print(symbol);
}
}
System.out.println();
}
这打印出一座非常难看的山 现在,添加&#34; else&#34;在最后三个陈述中,这座山看起来像它应该的样子,我想知道为什么会这样。
但新问题是山顶符号&#34; ^&#34;有时会被打印两次,这是不应该发生的。我尝试切换if语句的顺序,但就像丑陋的山一样,它没有改变任何东西。关于问题可能是什么想法?
答案 0 :(得分:1)
这是if / else语句的工作方式。在你目前的结构中,它们都是ifs。这意味着如果第一个语句为真,则代码进入并执行语句中的块。但它然后继续检查所有其他if语句,如果有任何结果是真的,它也将进入并执行其中的代码。 在输入if块时使用if / else语句时,将不会输入任何其他块。因此,与上面的示例一样,如果输入第一个if语句,则不需要检查其余的if。 否则只检查前一个if是否失败