Неправильный вывод с циклом for в Java - PullRequest
0 голосов
/ 25 марта 2011

Это простая программа, которую я написал с использованием for loop

public class Test
{
    public static void main (String[] args)
    {

        int high=10;

        for( int low =0; low <=high; low++){

            for (int mid=0; mid<=high; mid++)
            {
                System.out.print(mid);

            }
            System.out.println();    
        }
    }
}

Но я хочу, чтобы вывод выглядел как

0 1 2 3 4 5 6 7 8 9 10

1 2 3 4 5 6 7 8 9 10

2 3 4 5 6 7 8 9 10

etc...

10

Вместо этого мой вывод выглядит следующим образом 012345678910012345678910012345678910012345678910012345678910012345678910012345678910012345678910012345678910012345678910012345678910

Что я делаю не так?

Ответы [ 8 ]

4 голосов
/ 25 марта 2011

Вы не печатаете никаких пробелов.

System.out.print(mid + " ");

edit:

Кроме того, вы начинаете mid с 0 каждый раз через внутренний цикл, а нечем начать его с low.

2 голосов
/ 25 марта 2011
System.out.print(mid + " ");

и

System.out.println(" ");

Должны исправить вас.

РЕДАКТИРОВАТЬ: О ... ну, это и:

for (int mid = low; mid<=high; mid++)
1 голос
/ 25 марта 2011

Я надеюсь, что это даст вам то, что вы хотите:

public class Test
{
    public static void main (String[] args)
    {

    int high=10;

    for( int low =0; low <=high; low++)
    {
        for (int mid=low; mid<=high; mid++) //start from low not 0
        {
            System.out.print(mid+" ");

        }
        System.out.println();

    }
    }
}
1 голос
/ 25 марта 2011

Следующий код сделает

int high = 10;
    for (int low = 1; low <= high; low++) {
        for (int mid = low; mid <= high; mid++) {
            System.out.print(mid + " ");
        }
        System.out.println();
    }
}
1 голос
/ 25 марта 2011

Вы хотите установить mid = low и печатать пробелы, как отмечали другие:

int high=10;

for( int low =0; low <=high; low++)
    for (int mid=low; mid<=high; mid++)
    {
        System.out.print("%d ", mid);

    }
    System.out.println();
 }

Редактировать: убрать ложные \ n.

1 голос
/ 25 марта 2011

Установить середину = низкий уровень во внутренней петле.

1 голос
/ 25 марта 2011

Возможно, вы захотите объединить пробел в вызове System.out.

System.out.print( mid + " " );
0 голосов
/ 25 марта 2011

Попробуйте это

public class Test {
    public static void main (String[] args) {

    int high=10;

    for( int low =0; low<=high; low++) {

        for (int mid=low; mid<=high; mid++) {
            System.out.print(mid + " " );

        }

        System.out.println();
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...