什么是背后的逻辑"如果"声明?使用for循环绘图

时间:2018-02-25 19:16:05

标签: java for-loop if-statement drawing

所以我应该使用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();
     }

这打印出一座非常难看的山 This prints out a very ugly mountain 现在,添加&#34; else&#34;在最后三个陈述中,这座山看起来像它应该的样子,我想知道为什么会这样。 enter image description here

但新问题是山顶符号&#34; ^&#34;有时会被打印两次,这是不应该发生的。我尝试切换if语句的顺序,但就像丑陋的山一样,它没有改变任何东西。关于问题可能是什么想法?

1 个答案:

答案 0 :(得分:1)

这是if / else语句的工作方式。在你目前的结构中,它们都是ifs。这意味着如果第一个语句为真,则代码进入并执行语句中的块。但它然后继续检查所有其他if语句,如果有任何结果是真的,它也将进入并执行其中的代码。 在输入if块时使用if / else语句时,将不会输入任何其他块。因此,与上面的示例一样,如果输入第一个if语句,则不需要检查其余的if。 否则只检查前一个if是否失败