Hva er Fizzbuzz -problemet i Java

Hva er Fizzbuzz -problemet i Java
I grunnleggende Java -programmering kan det være tilfeller der man ønsker å forbedre programmering og logiske ferdigheter. Mer spesifikt, slik at nybegynnerne kan lage en noe vanskelig algoritme eller lage logikk. Også for å hente noen filtrerte verdier basert på kravet. I slike tilfeller "Fizzbuzz”Problem i Java hjelper nybegynnere med å forbedre kodingsferdighetene sine.

Denne artikkelen vil demonstrere regler og implementering av "Fizzbuzz" -problemet i Java.

Hva er "Fizzbuzz" -problemet i Java?

Fizzbuzz”Problem tilsvarer et spill i det virkelige liv som spilles av en gruppe mennesker som har følgende regler:

  • Sekvensen av svinger avgjøres før spillet startes.
  • Den første spilleren initierer ved å spesifisere et hvilket som helst nummer, i.e., “1”.
  • Neste spiller sier neste nummer, og så videre.
  • Den vanskelige delen er at ordet “Fizz”Sies i stedet for at tallet er flere av“3”.
  • På samme måte ordet “Buzz”Sies om det (nummer) er et multiplum av“5”.
  • Imidlertid, hvis tallet er et multiplum av begge tallene "3”Og“5", ordet "Fizzbuzz”Brukes i stedet.

Merk: Reglene for tallene som er spesifisert ovenfor kan endres, i.e., “11”Og“1. 3" etc.

Hvordan implementere "Fizzbuzz" -problemet i Java?

Å implementere “Fizzbuzz”Problem i Java, bruk følgende tilnærminger:

  • Hvis/ellers”Uttalelse.
  • Ternary”Operatør.
  • Maptoobj ()”Og“Rangeclosed ()”Metoder.

Følgende tilnærminger vil bruke en sjekk på tallene “3”Og“5”Og påkalle det tilsvarende ordet.

Tilnærming 1: Implementering av "Fizzbuzz" -problemet i Java ved å bruke "if/else" uttalelse

Hvis/ellers”Uttalelse sjekker for en bestemt tilstand og påkaller den tilsvarende uttalelsen. Denne uttalelsen kan brukes for å bruke en sjekk på forekomsten av tallene i samsvar med reglene.

Eksempel

La oss oversikt over eksemplet under levert:

offentlig klasse fizzbuzz
public static void main (String args [])
for (int i = 1; i <= 20; i++)
if (i % 3 == 0 && i % 5 == 0)
System.ute.println ("fizzbuzz");

ellers hvis (i % 3 == 0)
System.ute.println ("fizz");

ellers hvis (i % 5 == 0)
System.ute.Println ("Buzz");

annet
System.ute.println (i);

I henhold til koden ovenfor, bruk følgende trinn:

  • For det første, bruk en "til”Loop for å iterere langs heltalene til“20”.
  • I dette området, sjekk for at tallene er flere av begge “3”Og“5”Ved å sjekke om de er helt delbare og ingen resten blir igjen.
  • Ved fornøyd tilstand, logg ordet “Fizzbuzz”I samsvar med reglene.
  • Tilsvarende etter forekomsten av tallene er flere av “3”, Logg ordet“Fizz”.
  • På samme måte, vis ordet “Buzz”Hvis tallet er et multiplum av“5”.
  • I “ellers"Tilstand, selve nummeret vil vises på konsollen.

Produksjon

I denne utgangen kan det observeres at de tilsvarende ordene erstatter tallene som er multipler av “3”,“5" eller begge.

Tilnærming 2: Implementering av "Fizzbuzz" -problemet i Java ved å bruke "Ternary Operator"

Ternary”Operatør sjekker også for en bestemt tilstand og påkaller den tilsvarende blokken basert på de fornøyde eller utilfredsstillende forhold. Denne operatøren kan brukes kombinert med "verdien av()”Metode for å også sjekke for delbarhetstilstand og logge det tilsvarende utfallet som en streng.

Syntaks

(betingelse) ? (påkalle hvis sant): (påkalle hvis falsk);

Eksempel

La oss gå gjennom følgende eksempel for å forstå det uttalte konseptet:

offentlig klasse fizzbuzz2
public static void main (String args [])
for (int i = 1; i <= 20; i++)
Strengutgang = (i % 3 == 0 ? (i % 5 == 0 ? "Fizzbuzz": "Fizz"):
(i % 5 == 0 ? "Buzz": streng.verdi av (i)));
System.ute.println (utgang);

I henhold til dette kodebiten, utfør følgende trinn:

  • Inkluder på samme måte en "til”Loop for å iterere langs heltalene til den angitte grensen.
  • I løpet av dette området, sjekk for tilstanden slik at hvis tallet er et multiplum av “3”, Påkaller den tidligere tilstanden etter“?”. Hvis denne påkalte tilstanden (multippel av 5) også blir fornøyd, logg ordet “Fizzbuzz”.
  • Når det gjelder bare den tidligere fornøyde tilstanden, kan du returnere ordet “Fizz”.
  • Ellers får du tilgang til sistnevnte blokkering i neste linje. Her, på samme måte, sjekk for den tidligere fornøyde tilstanden og returner ordet “Buzz”.
  • I det andre tilfellet, logg verdien i seg selv som en streng via den tilknyttede “verdien av()”Metode.
  • Til slutt, logg det tilsvarende utfallet på hver iterasjon.

Produksjon

Før du fortsetter til neste tilnærming, må du huske å inkludere følgende pakker for å aktivere brukerinngang og manipulere “intVerdier, henholdsvis.

Importer Java.util.Skanner;
Importer Java.util.strøm.Intstream;

Tilnærming 3: Implementering av "Fizzbuzz" -problemet i Java ved å bruke “Maptoobj ()” og “RangeClosed () Methods

Maptoobj ()”Metode for“Intstream”Grensesnitt brukes til å returnere en objekt-verdsatt strøm og“Rangeclosed ()”Metode returnerer en sekvensiell bestilt intStream. Disse metodene kan brukes i kombinasjon med "Ternary”Operatør for å returnere det tilsvarende ordet i stedet for heltallet innenfor brukerinngangsområdet.

Syntaks

statisk intStream RangeClosed (int først, int sist)

I denne syntaksen:

  • først”Refererer til verdien inkludert den første verdien.
  • siste”Peker på den siste verdien.

Eksempel

Tenk på det under-uttalte eksemplet:

offentlig klasse fizzbuzz3
public static void main (String args [])
Skannerinngang = ny skanner (system.i);
System.ute.print ("Input The End Limit: \ n");
int inInteger = input.nextInt ();
Intstream.Rangeclosed (1, ininteger).Maptoobj (i-> I%3 == 0?(i%5 == 0? "Fizzbuzz": "Fizz") :( I%5 == 0? "Buzz": i+""))).Foreach (system.ut :: trykk);
inngang.Lukk();

I kodelinjene ovenfor, utfør følgende trinn:

  • For det første, lage en “Skanner”Objekt via“ny”Nøkkelord og“Skanner ()Henholdsvis konstruktør.
  • System.i”Parameter leser inngangen.
  • Etter det, knytter “NextInt ()”Metode for å få inngangen som et heltall.
  • Nå, tilknytte "Rangeclosed ()”Metode med“Intstream”Grensesnitt og spesifiser området ved å referere til brukerinnsatsverdien.
  • Bruk også “Maptoobj ()”Metode sammen med den ternære operatøren for å returnere en objektverdi -strøm.
  • Merk: Funksjonaliteten som utføres i den ternære operatøren er identisk med den forrige tilnærmingen.
  • Til slutt, bruk "for hver()”Metode for å vise alle verdiene og lukke skanneren via“Lukk()”Metode.

Produksjon

Dette utfallet innebærer at sekvensiell “Intstream”Returneres i samsvar med inngangsområdet.

Konklusjon

Å implementere “Fizzbuzz”Problem i Java, bruk“Hvis/ellers”Uttalelse,“Ternary”Operatør, eller“Maptoobj ()”Og“Rangeclosed ()”Metoder. Disse tilnærmingene bruker en sjekk på det spesifiserte eller brukerinnsatsområdet for heltall og returnerer det tilsvarende ordet i samsvar med spillet, i.e., “Fizzbuzz” regler. Denne bloggen blir guidet til å diskutere "Fizzbuzz" -problemet i Java.