2013-02-17 2 views
1

Итак, я пытаюсь создать пример треугольника из «[]», используя цикл for. При выполнении петли необходимо распечатать с данным входом 2:Почему моя программа добавляет новую строку?

[] 
[][] 

Однако когда вход 2 и компилировать это добавляет еще одну линию для коробок в поиске, как это:

[] 
[][] 
[][][] 

Есть призрак механик, или я что-то упускаю?

import java.util.Scanner; 
public class NestedLoops 
{ 
    public static void main(String[] args) 
    { 
     Scanner input = new Scanner(System.in); 

     System.out.print("Enter a Number between 2-9: "); 
     int width=input.nextInt(); 

     String r =""; 
     for(int i=1; i<=width; i++) 
     { 
      for(int j=1; j<=i; j++) 
      { 
       r=r+"[]"; 
       System.out.println(r); 
      } 

     } 


    } 


} 
+7

выполните свой код в отладчике. Следите за переменной r. –

+0

@SkyVar Зачем вам нужен внутренний цикл. Устраните это, и он решит проблему – user1428716

+1

, она растет и растет ... и никогда не становится «снова»? Внутренний цикл выполняется 1 + 2 раза. Второй раз, r начинается с [], прежде чем добавить []. – Floris

ответ

1

Вам нужно только один цикл для этого:

for(int i=1; i<=width; i++) 
    { 
     r=r+"[]"; 
     System.out.println(r); 
    } 
+1

bingo .. в то время – user1428716

+3

-1 - OP должен научиться отлаживать материал для себя. Вы НЕ помогаете ему ложкой, кормящим его ответом. (Очевидно, что это учебное упражнение ...) –

+1

@StephenC - согласился. – user1428716

5

Если вы читаете комментарии есть много намеков о том, что вы сделали неправильно.

Но что вам действительно нужно, советы о том, как сделать свой собственный поиск неисправностей:

  • Joel предполагает, что вы должны использовать отладчик. Если вас не учат об этом, вам нужно найти учебник ... относящийся к используемой среде IDE.

  • ruakh предлагает добавить трассировочные отпечатки к вашему коду, чтобы распечатать значения переменных в ключевых местах. Этот способ тоже работает, особенно в тех случаях, когда вы не можете подключить отладчик к своей программе.

  • Я предлагаю вам «выполнить» программу. Возьмите лист бумаги и карандаш, запишите имена переменных и «слот» для значений. Теперь сделайте вид, что выполняете инструкции точно так же, как они написаны, записывая/изменяя значения переменных на листе бумаги.

И, конечно, вы должны использовать свой мозг, чтобы интерпретировать то, что выше будет сказать вам, построить понимание того, что на самом деле происходит, и план ее фиксации.

Устранение неполадок/отладка - это то, чему вы научились практиковать; т. е. сделав это самостоятельно. И вам нужно научиться этому, если вы когда-либо станете производительным программистом.

Другой Хорошая вещь о том, что вы делаете свою собственную проблему, заключается в том, что эта практика помогает вам развивать свои навыки чтения и понимания кода и, в конечном счете, ваши навыки написания. И ЭТО ... мой друг ... это точка вашей домашней работы!

Смежные вопросы