Permalänk

Får bara error i min kod

Hej,

Jag är helt ny inom kodning och ska göra en uppgift.

using System; class Program { public static void Main (string[] args) { int x = 0 Console.Writeline("Skriv in ditt val!"); x = Convert.ToInt23(Console.Readline()); if (x == 1);{ Console.Writeline("Första valet"); } else if (x == 2);{ Console.Writeline("Andra valet"); } else if (x == 3);{ Console.Writeline("Tredje valet"); } else{ Console.Writeline("Inget utav de ovanstående valen gäller"); } Console.Writeline("Tryck enter för att avsluta"); Console.Readline(); } }

Så ser koden ut men det blir bara error.. Kan någon hjälpa mig?

Rubrik förtydligad från "Hjälp mig" /Vzano, Mod
Permalänk
Medlem

Convert.ToInt32.. du har skrivit Convert.ToInt23

Visa signatur

Dator: CPU: Intel Core i5 8600k @4.3GHz | Kylare: Noctua NH-L12 | Moderkort: Gigabyte Z370n WiFi | GPU: EVGA GTX 1080ti FTW3 | RAM: Corsair LPX 16GB 3000MHz | Chassi: Louqe Ghost S1 | Lagring: SAMSUNG 960 Evo m.2 512GB | PSU: Corsair sf600

Permalänk
Hedersmedlem

Även Writeline och Readline som ska vara WriteLine och ReadLine. Stora/små bokstäver är inte samma sak i programmering.

Därtill ska det aldrig vara ; före {.

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
Mobil: Moto G200

Permalänk
Moderator
Brons i quiz

@Ronnyponny: Jag har förtydligat din rubik, ett rop på hjälp säger inte vad du behöver hjälp med, och även slängt in [.code][./code] (ta bort "." för att koden ska hamna i ett block) mellan din kod för attså det blir lättare att läsa!

/Vzano, Moderator

Visa signatur

Citera om du vill ha svar!
Tycker du om sidospår? :D Besök The Wiki Game
Har du fråga angående modereringen? PM till Moderatorerna eller Kontaktformulär

Permalänk
Medlem

Avsluta int x = 0 med ;
x = Convert.ToInt23(Console.Readline()); -> x = Convert.ToInt32(Console.Readline());
Ta bort ; i dina vilkor för if-satserna.

Permalänk
Medlem

Får du ingen vettig stacktrace? (a.k.a felutskrift/errorlog)

Permalänk

Hej,

Tack för hjälpen, men får fortfarande error. Står ''else'' cannot make a statement

Permalänk
Medlem

Skulle göra en kontroll av värdet in.

var isNumeric = int.TryParse(Console.Readline(), out int x);

Visa signatur

AMD 5950X, 32GB 3600mhz G.Skill, ASUS ROG x570-e, ASUS Strix 2080ti

Permalänk
Medlem
Skrivet av Ronnyponny:

Hej,

Tack för hjälpen, men får fortfarande error. Står ''else'' cannot make a statement

Lägg upp din nuvarande kod så vi kan se vad som är fel i så fall, annars blir det svårt att hjälpa dig.

Visa signatur

| EVGA Z170 FTW | i7 6700k | ASUS RTX 3070 | 16GB DDR4 3200MHz | Cooler Master V850 | Samsung 840 Evo 250GB + 2x WD Black 500GB + Seagate 2TB SSHD + Samsung 970 Evo M.2 500GB |

Permalänk

using System;

class Program {
public static void Main (string[] args) {
int x = 0

Console.WriteLine("Skriv in ditt val!");
x = Convert.ToInt32(Console.Readline());

if (x == 1){
Console.WriteLine("Första valet");
}
else if (x == 2){
Console.WriteLine("Andra valet");
}
else if (x == 3){
Console.WriteLine("Tredje valet");
}

else{
Console.WriteLine("Inget utav de ovanstående valen gäller.")
}

Console.WriteLine("Tryck enter för att avsluta");
Console.ReadLine();
}
}

Permalänk
Hedersmedlem
Skrivet av Ronnyponny:

Hej,

Tack för hjälpen, men får fortfarande error. Står ''else'' cannot make a statement

Låter som att det fortfarande är semikolon efter isåfall?

... else { }
ska det vara, inte else; { }

Edit: Aha. I koden ovan saknas semikolonet efter WriteLine inuti else.

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
Mobil: Moto G200

Permalänk
Medlem
Skrivet av Ronnyponny:

using System;

class Program {
public static void Main (string[] args) {
int x = 0

Console.WriteLine("Skriv in ditt val!");
x = Convert.ToInt32(Console.Readline());

if (x == 1){
Console.WriteLine("Första valet");
}
else if (x == 2){
Console.WriteLine("Andra valet");
}
else if (x == 3){
Console.WriteLine("Tredje valet");
}

else{
Console.WriteLine("Inget utav de ovanstående valen gäller.")
}

Console.WriteLine("Tryck enter för att avsluta");
Console.ReadLine();
}
}

Du saknar fortfarande semikolon efter din "int x = 0" och även efter din WriteLine i ditt else-block.

Använd också [code][/code]-taggar runt din kod när du postar.

Visa signatur

| EVGA Z170 FTW | i7 6700k | ASUS RTX 3070 | 16GB DDR4 3200MHz | Cooler Master V850 | Samsung 840 Evo 250GB + 2x WD Black 500GB + Seagate 2TB SSHD + Samsung 970 Evo M.2 500GB |

Permalänk

I vilket program programmerar du? Brukar finnas rätt okej hjälp med sådana saker inbyggt.

Permalänk
Medlem
Skrivet av Ronnyponny:

Så ser koden ut men det blir bara error..

Vill bara flika in att det är lika viktigt att posta exakt vilket error/output man får som att posta sin kod när man frågar om hjälp. Bra att veta till nästa gång!

Permalänk

visual studio code är ett bra verktyg ändå skriva kod i som hjälper dig hitta småfel och stavfel

Visa signatur

[5900x][MSI-B550-Tomahawk][RTX-3700][32GBRam3200CL14]

Permalänk
Medlem

Lägger jag in koden i Visual Studio så syns det direkt vilka fel koden har.

Sedan skulle jag vilja tipsa om att använda ett Switch-statement istället för en if-if else-sats.

Visa signatur

CPU: Ryzen 9 3900x Noctua NH-D14 MOBO: TUF Gaming X570-PLUS GPU: GTX 980 RAM: 32 GB 3200 MHz Chassi: R4 PSU: Corsair AX860 Hörlurar: SteelSeries 840 Mus: Logitech G502 Lightspeed V.v. nämn eller citera mig för att få svar.

Permalänk
Medlem
Skrivet av SirMauser:

visual studio code är ett bra verktyg ändå skriva kod i som hjälper dig hitta småfel och stavfel

OmniSharp funkar tyvärr bara ifall filen är med i en solution. (vilket kan vara lätt att missa i småprojekt.)

Visa signatur

CPU: Ryzen 9 3900x Noctua NH-D14 MOBO: TUF Gaming X570-PLUS GPU: GTX 980 RAM: 32 GB 3200 MHz Chassi: R4 PSU: Corsair AX860 Hörlurar: SteelSeries 840 Mus: Logitech G502 Lightspeed V.v. nämn eller citera mig för att få svar.

Permalänk
Medlem

Använd Int32.TryParse(Console.ReadLine(), out var) för att få ut en int från en inmatad string istället för Convert om du inte bestämt måste det.
Då får du ut 0 ifall man matar in nåt annat än buffrar kan tilläggas.