W podstawowym programowaniu Java mogą wystąpić przypadki, w których chcesz poprawić programowanie i umiejętności logiczne. Mówiąc dokładniej, umożliwiając początkującym stworzenie nieco trudnego algorytmu lub tworzenie logiki. Ponadto, aby pobrać niektóre filtrowane wartości na podstawie wymagań. W takich przypadkach „
Fizzbuzz„Problem w Javie pomaga początkującym w zwiększaniu ich umiejętności kodowania.
W tym artykule pokazuje zasady i wdrożenie problemu „fizzbuzz” w Javie.
Jaki jest problem „fizzbuzz” w Javie?
„„Fizzbuzz„Problem odpowiada gry w prawdziwym życiu, w którą gra grupa ludzi o następujących zasadach:
- Sekwencja zakrętów jest rozstrzygana przed rozpoczęciem gry.
- Pierwszy gracz inicjuje, określając dowolny numer, i.mi., "1".
- Następny gracz mówi następny numer i tak dalej.
- Trudne jest to, że słowo „Syczeć”Mówi się zamiast liczby jest wielokrotnie„3".
- Podobnie słowo „Brzęczeć”Mówi się, jeśli (liczba) jest wielokrotnością„5".
- Jeśli jednak liczba jest wielokrotnością obu liczb ”3" I "5", słowo "Fizzbuzz”Zamiast tego jest używany.
Notatka: Reguły dla liczb określonych powyżej mogą się zmienić, i.mi., "11" I "13"Itd.
Jak wdrożyć problem „fizzbuzz” w Javie?
Aby wdrożyć „Fizzbuzz„Problem w Javie zastosuj następujące podejścia:
- "Jeśli inaczej" Oświadczenie.
- "Potrójny„Operator.
- "maptoobj ()" I "RangeClosed ()”Metody.
Poniższe podejścia zastosują sprawdzenie liczb „3" I "5”I wywołaj odpowiednie słowo.
Podejście 1: Wdrożenie problemu „FizzBuzz” w Javie za pomocą instrukcji „If/Else”
„„Jeśli inaczej”Oświadczenie o określonym stanie i wywołuje odpowiednią instrukcję. Niniejsze stwierdzenie można zastosować do zastosowania kontroli po wystąpieniu liczb zgodnie z zasadami.
Przykład
Przeglądajmy poniższy przykład:
Klasa publiczna Fizzbuzz
public static void main (string args [])
dla (int i = 1; i <= 20; i++)
if (i % 3 == 0 && i % 5 == 0)
System.na zewnątrz.println („fizzbuzz”);
Else, jeśli (i % 3 == 0)
System.na zewnątrz.println („Fizz”);
else jeśli (i % 5 == 0)
System.na zewnątrz.println („Buzz”);
w przeciwnym razie
System.na zewnątrz.println (i);
Zgodnie z powyższym kodem zastosuj następujące kroki:
- Po pierwsze, zastosuj „Do„Pętla, aby iterować wzdłuż liczb całkowitych20".
- W tym zakresie sprawdź, czy liczby są wielokrotnie „obu”3" I "5”Sprawdzając, czy są całkowicie podzielne, a pozostała pozostała pozostała w tyle.
- Według zadowolonego warunku zaloguj się słowo „Fizzbuzz”Zgodnie z zasadami.
- Podobnie po wystąpieniu liczb jest wielokrotnie „3”, Zaloguj słowo„Syczeć".
- Podobnie wyświetl słowo „Brzęczeć”Jeśli liczba jest wielokrotnością„5".
- W "w przeciwnym razie”Warunki sama liczba zostanie wyświetlona na konsoli.
Wyjście
W tym wyjściu można zaobserwować, że odpowiednie słowa zastępują liczby, które są wielokrotnościami „3”,„5" lub oba.
Podejście 2: Wdrożenie problemu „FizzBuzz” w Javie za pomocą „operatora ternie”
„„Potrójny”Operator sprawdza również określony warunek i wywołuje odpowiedni blok na podstawie zadowolonych lub niezadowolonych warunków. Ten operator można wykorzystać w połączeniu z „wartość()„Metoda, aby również sprawdzić warunek podziału i zarejestrować odpowiedni wynik jako ciąg.
Składnia
(stan : schorzenie) ? (WZYWAJ, jeśli prawda): (invoke If False);
Przykład
Przejrzyjmy następujący przykład, aby zrozumieć określoną koncepcję:
klasa publiczna FizzBuzz2
public static void main (string args [])
dla (int i = 1; i <= 20; i++)
String wyjściowy = (i % 3 == 0 ? (i % 5 == 0 ? „Fizzbuzz”: „Fizz”):
(i % 5 == 0 ? „Buzz”: String.wartość (i)));
System.na zewnątrz.println (wyjście);
Zgodnie z tym fragmentem kodu wykonaj następujące kroki:
- Podobnie, zawiera „Do”Pętla, aby iterować wzdłuż liczb całkowitych do określonego limitu.
- W tym zakresie sprawdź warunek tak, że jeśli liczba jest wielokrotnością „3”, Wzywaj poprzedni stan po„?". Jeśli ten wywołany warunek (wiele z 5) również zostanie zadowolony, zaloguj się słowo „Fizzbuzz".
- W przypadku tylko poprzedniego stanu zwróć słowo „Syczeć".
- W przeciwnym razie uzyskaj dostęp do drugiego bloku w następnym wierszu. Podobnie sprawdź poprzedni stan zadowolony i zwróć słowo „Brzęczeć".
- W drugim przypadku zaloguj się samą wartość jako ciąg za pomocą powiązanego „wartość()" metoda.
- Na koniec zaloguj odpowiedni wynik na każdej iteracji.
Wyjście
Przed przejściem do następnego podejścia upewnij się, że dołącz następujące pakiety, aby umożliwić wprowadzanie użytkownika i manipulować „int”Odpowiednio wartości.
Importuj Java.Util.Skaner;
Importuj Java.Util.strumień.Intstream;
Podejście 3: Wdrożenie problemu „FizzBuzz” w Javie za pomocą metod „maptoobj ()” i „rangeclosed ()
„„maptoobj ()„Metoda„Intstream„Interfejs jest wykorzystywany do zwrócenia strumienia o wartości obiektowej i„RangeClosed ()”Metoda zwraca sekwencyjny uporządkowany intstream. Metody te można zastosować w połączeniu z „Potrójny„Operator, aby zwrócić odpowiednie słowo zamiast liczby całkowitej w zakresie wprowadzania użytkownika.
Składnia
statyczne intstream Rangeclosed (int pierwszy, int last)
W tej składni:
- "Pierwszy”Odnosi się do wartości, w tym pierwszej wartości.
- "ostatni”Wskazuje na ostatnią wartość.
Przykład
Rozważ poniżej podany przykład:
Klasa publiczna FizzBuzz3
public static void main (string args [])
Skaner wejściowy = nowy skaner (system.W);
System.na zewnątrz.drukuj („Wprowadź limit końcowy: \ n”);
int inInteger = wejście.NextIt ();
Intstream.Rangeclosed (1, inInteger).maptoobj (i-> i%3 == 0?(i%5 == 0? „Fizzbuzz”: „Fizz”) :( i%5 == 0? „Buzz”: i+"")).Foreach (system.OUT :: drukuj);
wejście.zamknąć();
W powyższych wierszach kodu wykonaj następujące kroki:
- Po pierwsze, stwórz „Skaner„Obiekt za pośrednictwem„nowy”Słowo kluczowe i„Skaner ()”Konstruktor odpowiednio.
- „„System.W”Parametr odczytuje wejście.
- Następnie skojarz „NextIt ()”Metoda uzyskania danych wejściowych jako liczby całkowitej.
- Teraz skojarz „RangeClosed ()„Metoda z„Intstream”Interfejs i określ zakres, odwołując się do wartości wprowadzania użytkownika.
- Zastosuj także „maptoobj ()”Metoda wraz z operatorem trójskładnikowym, aby zwrócić strumień wartości obiektu.
- Notatka: Funkcjonalność wykonywana w operatorze trójskładnikowym jest identyczna z poprzednim podejściem.
- Na koniec zastosuj „dla każdego()„Metoda wyświetlania wszystkich wartości i zamykania skanera za pomocą„zamknąć()" metoda.
Wyjście
Ten wynik oznacza, że sekwencyjny „Intstream”Jest zwracany zgodnie z zakresem wejściowym.
Wniosek
Aby wdrożyć „Fizzbuzz„Problem w Javie, zastosuj„Jeśli inaczej„Oświadczenie,„Potrójny„Operator lub„ ”maptoobj ()" I "RangeClosed ()”Metody. Podejścia te stosują kontrolę określonego lub wejścia użytkownika liczb całkowitych i zwracają odpowiednie słowo zgodnie z grą, i.mi., Reguły „Fizzbuzz”. Ten blog jest prowadzony w celu omówienia problemu „Fizzbuzz” w Javie.