2013-11-26 2 views
0

Ребята я хотел бы спросить, как избавиться от «и» печать на моем циклеКак избавиться от лишнего оператора печати на моем цикле

2 и 4 и <

public static void main(String[] args) { 
    Methods(5); 
} 

public static void Methods(int a){ 

    int loops = a/2; 
    int even = 0; 

    for(int i = 0; i < loops; i++){ 
     even+=2; 
     System.out.print(even+" and "); 
    } 
} 

это печатает

2 и 4 и < < <

Вместо я хочу

2 и 4 < < <

спасибо. Пожалуйста, помогите мне, я начинаю T_T

+0

проверить [StringUtils.join в Apache Commons Lang] (http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#join%28java.lang. Iterable,% 20java.lang.String% 29) –

ответ

1

Вы можете сделать:

public static void Methods(int a){ 
    int loops = a/2; 
    int even = 0; 

    for(int i = 0; i < loops; i++){ 
     even+=2; 

     System.out.print(even); 
     if (i < loops - 1) { 
      System.out.print(" and ") 
     } 
    } 

Другими словами: до тех пор, как i меньше loops - 1 (который держит во всей петле, за исключением последнего шага) вы бы распечатать " and ". Это гарантирует, что последний and не печатается, когда он проходит через цикл в последний раз.

1

Проверьте, если ваш индекс является последним индексом, на котором вы бы включили, то есть если i == loops - 1. Если это так, то просто напечатайте even вместо even + " and ".

+0

Сэр он просто распечатает 4, если я использую то, что хочу напечатать 2 и 4

+0

Да, он напечатает '4'. Первая итерация должна печатать '2 и', а вторая итерация будет печатать '4', давая' 2 и 4'. – rgettman

0

Перед тем, как ввести петлю, проверьте, есть ли элемент, напечатайте только первый элемент. Приращение i, а затем для каждого оставшегося элемента всегда предварительно отложить " and ".

int i = 0; 
if (i < loops) { 
    even+=2; 
    System.out.print(even); 
} 
i++; 
for(; i < loops; i++){ 
    even+=2; 

    System.out.print(" and " + even); 
} 

Таким образом, вы избегаете всей проверки внутри цикла.

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