Jag får inte ordning på mina if-satser. Snälla hjälp.

Permalänk

Jag får inte ordning på mina if-satser. Snälla hjälp.

Jag vill få att användaren ska ange 10 siffror. Jag har innan valt ut ett nummer som jag vill se om användaren lyckas hitta.
Jag vill lägga detta i en if-sats, så att det kommer upp en Grattis-rad om denne lyckats hitta numret och i else-satsen ska det bara stå Tack för dina tal.

Nu till mitt problem...hur skriver jag if-satsen så att de valda numren kollas mot mitt valda?
Allt annat funkar.
Vad i min kod ska sitta i if-satsen ---------> if (myNumber == ????)

Här kommer koden.

using System; namespace Vektoruppgift3 { class Program { static void Main(string[] args) { int[] number = new int[10];//Skapar en vektor med plats för 10 st heltal. int i; int myNumber = 25; for (i = 0; i < 10; i++)//Läser in 10 st heltal. { Console.WriteLine("Skriv in 10 heltal:"); number[i] = Convert.ToInt32(Console.ReadLine());//KOnverterar en string till ett heltal. } if (myNumber ==??????) { Console.WriteLine("Grattis."); } else { Console.WriteLine("Tack för dina heltal."); } } } }

Permalänk
Medlem

Du vill ha if satsen i loopen, och jämföra ditt mynumber med det de skriver som input. Vart sparar du det?

Edit: Och om du hittar det vill du breaka ur, och annars kan du bara ha en print efter hela loopen

Permalänk

Eftersom variabeln number är en array måste du loopa igenom den med en for-sats för att kontrollera varje index i arrayen.

Permalänk
Skrivet av Makramundi:

Eftersom variabeln number är en array måste du loopa igenom den med en for-sats för att kontrollera varje index i arrayen.

Ska if-satsen ligga i en for-loop alltså?
En ny, egen for loop eller i den forloopen jag redan har?
Är helt nybörjare på detta.

Permalänk
Medlem
Skrivet av lexigrey76:

Ska if-satsen ligga i en for-loop alltså?
En ny, egen for loop eller i den forloopen jag redan har?
Är helt nybörjare på detta.

Du kan inte kolla om "ett tal = en vektor med tal". Var du vill göra mer specifikt är att kolla om din vektor innehåller ditt tal, vilket du kan göra på ett par olika sätt.

Du kan loopa igenom vektorn och i varje iteration kolla om talet på plats i i vektorn är lika med ditt tal. Antagligen vill du ha det i en egen loop efteråt, annars finns det inte riktigt någon poäng med vektorn till att börja med, då du lika väl kan kolla varje tal direkt när det skrivits.

Du kan också använda de funktioner som finns tillgängliga för dina datatyper. Om det är java kan du t.ex. använda contains, och då blir det bara en enkel ifsats utan loop (eftersom denna funktion internt loopar igenom och kollar varje tal):
https://www.javatpoint.com/java-vector-contains-method

Visa signatur

Redbox: Asrock B650 Lightning ATX, 7800x3D -20CCO, XFX 6950XT, 2x32GB Corsair Vengence 6400 CL32, WD SN770 2TB, Corsair RMe 1000, Lian Li Lancool 216, Peerless Assassin 120 SE
Purpbox: Z87-Pro, I5 4670K@4.2, Sapphire 290 TRI-X, 2x8GB Crucial Tactical@stock, Deep Silence 1
Samsung Evo 250+500GB + QVO 1TB, 2x1TB 7200RPM backup/lagring
Det var bättre förr: E5300 2600MHz -> 3640MHz, Celeron 300A -> 450MHz

Permalänk
Skrivet av lexigrey76:

Ska if-satsen ligga i en for-loop alltså?
En ny, egen for loop eller i den forloopen jag redan har?
Är helt nybörjare på detta.

Ja, en ny for-loop med if-satsen innuti.
If-satsen kan se ut enligt foljande:

if(myNumber == number[i])

Permalänk
Medlem
Skrivet av Makramundi:

Ja, en ny for-loop med if-satsen innuti.
If-satsen kan se ut enligt foljande:

if(myNumber == number[i])

Går även att göra direkt i första loopen, och komma ihåg att breaka om man lyckas gissa rätt!

Permalänk
Skrivet av e1m1:

Du kan inte kolla om "ett tal = en vektor med tal". Var du vill göra mer specifikt är att kolla om din vektor innehåller ditt tal, vilket du kan göra på ett par olika sätt.

Du kan loopa igenom vektorn och i varje iteration kolla om talet på plats i i vektorn är lika med ditt tal. Antagligen vill du ha det i en egen loop efteråt, annars finns det inte riktigt någon poäng med vektorn till att börja med, då du lika väl kan kolla varje tal direkt när det skrivits.

Du kan också använda de funktioner som finns tillgängliga för dina datatyper. Om det är java kan du t.ex. använda contains, och då blir det bara en enkel ifsats utan loop (eftersom denna funktion internt loopar igenom och kolla varje tal):
https://www.javatpoint.com/java-vector-contains-method

Detta är la C#? I C# har endast string[] en contains-metod vad jag vet.

Permalänk
Skrivet av T0MT0M:

Går även att göra direkt i första loopen, och komma ihåg att breaka om man lyckas gissa rätt!

Det beror ju på vilket beteende man vill ha. Vill man ha direkt återkoppling på gisningen är din metod rätt väg. Vill TS att man gör alla 10 gissningar innan återkoppling bör man gå enligt mitt exempel.

Permalänk
Medlem
Skrivet av Makramundi:

Det beror ju på vilket beteende man vill ha. Vill man ha direkt återkoppling på gisningen är din metod rätt väg. Vill TS att man gör alla 10 gissningar innan återkoppling bör man gå enligt mitt exempel.

Blir ju ingen skillnad med återkoppling tänker jag, varför skulle du vilja fortsätta gissa efter du gissat rätt tänker jag.

Permalänk
Skrivet av T0MT0M:

Blir ju ingen skillnad med återkoppling tänker jag, varför skulle du vilja fortsätta gissa efter du gissat rätt tänker jag.

I sånt fall finns det ju ingen mening med att spara ner föregående gissningar i en array.

Permalänk
Medlem
Skrivet av Makramundi:

I sånt fall finns det ju ingen mening med att spara ner föregående gissningar i en array.

Nja, det är väl ioförsig helt sant

Permalänk
Skrivet av Makramundi:

Ja, en ny for-loop med if-satsen innuti.
If-satsen kan se ut enligt foljande:

if(myNumber == number[i])

Hur ska den for-loopen se ut då??

Så här ser ju första loopen ut.

for (i = 0; i < 10; i++)

Jag vill ju att alla 10 gissningar ska skrivas ut först, sen om användaren lyckats gissa mitt nummer så ska det stå att den lyckats med det, den ska inte sluta om den lyckats gissa rätt, utan det ska stå först på slutet.

Permalänk
Medlem

@lexigrey76: Du kan göra kontrollen antingen i en likadan for-loop efteråt, eller direkt i den första for-loopen. Du kan inte avgöra om användaren gissat fel förrän du gått igenom alla gissningar, så lämpligtvis kan du använda en bool-variabel för att notera om användaren gissat rätt. Själva utskrifterna kan sedan ske utanför loopen/looparna baserat på bool-variabeln.

Permalänk
Skrivet av lexigrey76:

Hur ska den for-loopen se ut då??

Så här ser ju första loopen ut.

for (i = 0; i < 10; i++)

Jag vill ju att alla 10 gissningar ska skrivas ut först, sen om användaren lyckats gissa mitt nummer så ska det stå att den lyckats med det, den ska inte sluta om den lyckats gissa rätt, utan det ska stå först på slutet.

Exakt så ja. Jag tänker inte skriva koden åt dig då jag misstänker att detta är någon slags skoluppgift