2015-08-26 2 views
2
public class NormalNumbers { 

    public static void main(String[] args) { 

    int x = 1; 

    while ((x >= 1) && (x <= 100)) { 

     System.out.println("x = " + x); 

     x = x + 1; 

    } 
    } 
} 

Текущий выход:Как вывести вертикальный список в горизонтальные списки

x = 1 
x = 2 
... 
x = 100 

Я хочу изменить формат:

x=1 x=2 x=3 x=4 x=5 
x=6 x=7 x=8 x=9 x=10 

и так далее.

Как это достичь?

+0

с помощью петель. я хочу, чтобы он выглядел как 1 2 3 4 5 и начинался снова на следующей строке с помощью 6 7 8 9 10 –

+0

'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' Посмотрите на мой ответ. – Andrew

ответ

2

Вместо использования println(), который автоматически вставляет символ новой строки в конце того, что Вы печать, просто использовать print() и добавить дополнительное пространство для прокладки ваших записей.

Если вы хотите, чтобы ввести новую строку после 5 записей конкретно, вы можете сделать это с пустым println() и оператором модуля, как так:

while ((x >= 1) && (x <= 100)) { 
    System.out.print("x = " + x); 
    if (x % 5 == 0) { 
     System.out.println(); 
    } 
    x = x + 1; 
} 
2

System.out.println распечатывает текст и добавляет новую строку. Используйте System.out.print для печати на той же строке.

Так что было бы что-то вроде этого:

System.out.print("x=" + x + " "); 

Чтобы добавить новую строку каждый 5 чисел, использование:

// if x is multiple of 5, add a new line 
if (x % 5 == 0) { 
    System.out.println(); 
} 

PD: Вы можете использовать x++ (increment operator) или x += 1 (в случай, который вы хотите увеличить в более чем одном устройстве) вместо x = x + 1.

PD2: Вы можете использовать табуляцию (\t) вместо пространства для разделения ваших номеров. Таким образом, цифры с двумя цифрами будут иметь одинаковый отступ, чем числа с одной цифрой.

System.out.print("x=" + x + "\t"); 
2

Divide ваш счетчик на 5 не используя модуль разделения, если нет остаток затем создать новую строку:

int x = 1; 

while ((x >= 1) && (x <= 100)) 
{ 
    System.out.print("x = " + x + " "); 
    if(x % 5 == 0) 
    { 
     System.out.print("\n"); 
    } 
    x = x + 1; 

} 
2
  • println является следующая строка, print находится на той же линии.
  • x % 5 == 0 проверяет, что значения x кратно 5 или нет.

    int x = 1; 
    
    while ((x >= 1) && (x <= 100)) { 
    
        if (x % 5 == 0) { 
         System.out.println("x="+x); 
        } else { 
         System.out.print("x=" +x+ " "); 
    
        } 
    
        x = x + 1; 
    
    } 
    

Это дает вам результат, как

x=1 x=2 x=3 x=4 x=5 
x=6 x=7 x=8 x=9 x=10 
x=11 x=12 x=13 x=14 x=15 
x=16 x=17 x=18 x=19 x=20 
----- 
1

Я думаю, что в вашем случае лучший способ использует for(;;) заявления:

for (int x = 1; x > 0 && x < 101;) 
    System.out.print("x = " + x + (x++ % 5 == 0 ? "\n" : " ")); 

Тройной оператор x++ % 5 == 0 ? "\n" : " " отвечает за новую строку и приращение переменной x.

Выходные:

x = 1 x = 2 x = 3 x = 4 x = 5 
x = 6 x = 7 x = 8 x = 9 x = 10 
... 
x = 96 x = 97 x = 98 x = 99 x = 100 
Смежные вопросы