FizzBuzz, cod java (Programare, Java, Bucle, Condițional, Fizzbuzz)

GentleCynic a intrebat.

Încerc să creez o bucată de cod pentru jocul ‘fizzbuzz’, dacă n|3 => n=Fizz, dacă n|5 => n= Buzz și dacă n|3 și n|5 atunci n=Fizzbuzz.

Din anumite motive, codul meu afișează doar 46 de linii de cod, mă poate ajuta cineva? Mulțumesc.

Iată codul meu:

import static java.lang.Math.*;
import java.io.*;

public class P2InventedExercise
{
    static void FizzBuzz(int n)
    {

        /** Welcome Message **/
        System.out.println("+----------------------------+");
        System.out.println("|    WELCOME TO FIZZ BUZZ    |");
        System.out.println("+----------------------------+");


        /** Creating Strings to Print & Defines integer 'k'. **/
        String Fizz = "Fizz";
        String Buzz = "Buzz";
        String FizzBuzz = "FizzBuzz";
        int k = 0;

        /** Printing Strings **/   
        while (k <= n)
           {   
               /** Boolean Tests **/

                boolean FizzTest = (k%3 == 0);
                boolean BuzzTest = (k%5 == 0);
                boolean FizzBuzzTest = (k%3 == 0 && k%5 == 0);

               /** If Tests **/

                 if (FizzBuzzTest)
                {
                    System.out.println(k+"= " + FizzBuzz);
                    k=k+1;
                    continue;
                }
                if (FizzTest)
                {
                    System.out.println(k + "= " + Fizz);
                    k=k+1;
                    continue;
                }
                else if (BuzzTest)
                {
                    System.out.println(k + "= " + Buzz);
                    k=k+1;
                    continue;
                }
                else
                {
                    System.out.println(k + "= " + k);
                    k=k+1;
                    continue;
                }
            }  
    }
}

Comentarii

  • vă rog, descrieți care este comportamentul dorit. –  > Por skypjack.
  • Care este valoarea lui n ? –  > Por Manos Nikolaidis.
  • FizzBuzz este un joc în care dacă n|3, lui n i se atribuie cuvântul Fizz, dacă n|5, lui n i se atribuie cuvântul Buzz și dacă n împarte atât 3 & 5 atunci lui n i se atribuie FizzBuzz. Programul face acest lucru de la 0 la n, unde n este ales de utilizator. Problema este că atunci când aleg, să zicem, n=100, programul afișează doar 46 de rânduri de text, deci, afișează de la n=54, dar ar trebui să înceapă de la n=0. –  > Por GentleCynic.
  • n|3 înseamnă că n se împarte la 3. Vrei să spui 3|n în schimb? –  > Por WhiteViking.
  • Puteți șterge în siguranță toate toate aceste importuri — nu le folosiți. –  > Por Kevin J. Chase.
1 răspunsuri
Roman Pustylnikov

Codul pare aproape OK, verificați care este n.de asemenea, fii atent că îți lipsește else în a doua declarație if. Ar trebui să fie:

else if (FizzTest)

Comentarii

  • Mulțumesc pentru răspuns, schimb al doilea „if” în „else if” deși tot se afișează doar 46 de rânduri de text. Deci, dacă pun n=100, va începe de la „54 = Fizz”. Nu de la 0. :S –  > Por GentleCynic.
  • La mine merge bine: ideone.com/UNvQMt Vă rog să vă asigurați că n nu este schimbat în drumul său către FizzBuzz –  > Por Roman Pustylnikov.
  • Sau rezultatele nu sunt afișate din cauza înălțimii ferestrei. Încercați să derulați în sus sau să rulați un n mai mic pentru a verifica. Folosiți pauză dacă nu puteți derula sau redirecționați către un fișier text. –  > Por Roman Pustylnikov.
  • Foarte enervant dacă funcționează pentru tine, Ive eliminat importurile și va redirecționa către un fișier text. –  > Por GentleCynic.