2015-12-13 4 views
0

Я должен сделать вариацию знаменитого кода «FizzBuzz», где он подсчитывает число, которое пользователь вводит и выводит только 11 номеров в строке. Мой код, похоже, несколько работает, но он повторяет то же самое по 11 раз в каждой строке.Печать 11 номеров в строке?

Может кто-то, пожалуйста, помогите мне исправить это?

import javax.swing.JOptionPane; 

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

     String n = JOptionPane.showInputDialog("Please input an interger"); 
     int result = Integer.parseInt(n); 
     for (int i = 0; i <= result; i++) { 
      for (int j = 0; j <= 10; j++) { 

       System.out.print(" "); 

       if (i % 3 == 0 && i % 5 == 0 && i % 7 == 0) { 
        System.out.print("CozaLozaWoza"); 
       } 

       if (i % 3 == 0 && i % 5 == 0) { 
        System.out.print("CozaLoza"); 

       } else if (i % 5 == 0) { 
        System.out.print("Loza"); 

       } else if (i % 3 == 0) { 
        System.out.print("Coza"); 

       } else if (i % 7 == 0) { 
        System.out.print("Woza"); 

       } else { 
        System.out.print(" " + i); 
       } 
      } 
     } 
     System.out.println(); 
    } 
} 

Вот результат я получу, если я вхожу в число "20" в этой программе

CozaLozaWozaCozaLoza CozaLozaWozaCozaLoza CozaLozaWozaCozaLoza CozaLozaWozaCozaLoza CozaLozaWozaCozaLoza CozaLozaWozaCozaLoza CozaLozaWozaCozaLoza CozaLozaWozaCozaLoza CozaLozaWozaCozaLoza CozaLozaWozaCozaLoza CozaLozaWozaCozaLoza 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 Coza Coza Coza Coza Coza Coza Coza Coza Coza Coza Coza 4 4 4 4 4 4 4 4 4 4 Лоза Лоза Лоза Лоза Лоза Лоза Лоза Лоза Лоза Лоза Лоза Коза Коза Коза Коза Coza Coza Coza Coza Coza Coza Coza Woza Woza Woza Woza Woza Woza Woza Woza Woza Woza Woza Woza Woza Woza 8 8 8 8 8 8 8 8 8 8 Coza Coza Coza Coza Coza Coza Coza Coza Coza Coza Coza Лоза Лоза Лоза Лоза Лоза Лоза Лоза Лоза Лоза Лоза Лоза 11 11 11 11 11 11 11 11 11 11 11 Coza Coza Coza Coza Coza Coza Coza Coza Coza Coza Coza 13 13 13 13 13 13 13 13 13 13 13 Woza Woza Woza Woza Woza Woza Woza Woza Woza Woza Woza Woza CozaLoza CozaLoza CozaLoza CozaLoza CozaLoza CozaLoza CozaLoza CozaLoza CozaLoza CozaLoza CozaLoza 16 16 16 16 16 16 16 16 16 16 16 17 17 17 17 17 17 17 17 17 17 17 Co Co Co Co Co Co Co Co Co Co Co 19 19 19 19 19 19 19 19 19 19 19 Лозы Лозы Лозы Лоза Лоза Лоза Лоза Лоза Лоза Лоза Лоза

+0

Непонятно, что вы ожидаете. Пожалуйста, напишите ввод и ожидаемый результат – Rehman

+0

Пожалуйста, отпечатайте свой код правильно, вы можете использовать свою IDE, чтобы сделать это за вас. Трудно прочитать код в противном случае. – user1803551

+0

Да, он повторяет то же самое 11 раз, вот что делает цикл 'for (int j ...'. Если вы этого не хотите, код в цикле должен как-то зависеть от 'j'. – Henry

ответ

1

Я рад сообщить, что ваш собственный отсутствие отступов было вашим падением. Этот беспорядок

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

должен быть этот беспорядок:

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

А теперь иди научиться отступа и исправить отступы.

Кроме того, во внешнем контуре for (int i = 0; i <= result; i++) вы используете значения result + 1. Возможно, вам нужно i < result.

(Только в случае, если вопрос получает редактируемый, я говорю о оригинале.)

0

Вашего кода производит именно: (! В конце)

input (20 in your test) : for (int i=0; i<=result; i++) 

x 11 : for (int j=0; j<=10; j++) 

И только один CRLF => пут до

0

Возможно, вам нужно переместить System.out.println(); один кронштейн выше. Этот код должен работать нормально

import javax.swing.JOptionPane; 

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

     String n = JOptionPane.showInputDialog("Please input an interger"); 
     int result = Integer.parseInt(n); 
     for (int i = 0; i <= result; i++) { 
      for (int j = 0; j <= 10; j++) { 

       System.out.print(" "); 

       if (i % 3 == 0 && i % 5 == 0 && i % 7 == 0) { 
        System.out.print("CozaLozaWoza"); 
       } 

       if (i % 3 == 0 && i % 5 == 0) { 
        System.out.print("CozaLoza"); 

       } else if (i % 5 == 0) { 
        System.out.print("Loza"); 

       } else if (i % 3 == 0) { 
        System.out.print("Coza"); 

       } else if (i % 7 == 0) { 
        System.out.print("Woza"); 

       } else { 
        System.out.print(" " + i); 
       } 
      } 
      System.out.println(); // moved line 
     } 
    } 
} 
Смежные вопросы