Permalänk
Medlem

C# - lite hjälp på traven...

Hej!

Jag har nyss börjat lära mig C# (igår för att vara exakt). Jag har en första inlämningsuppgift, som andra här har skrivit om, men de har alla varit så mycket mer kunniga än jag trots att de var nybörjare.

Jag behöver lite hjälp på traven - hur ska jag tänka?
Uppgiften går ut på att man ska fråga användaren efter namn och ålder och sedan ska programmet räkna ut hur långt det är kvar till pensionen genom att ha värdet 65 minus åldern användaren anger.

Jag har kommit så långt som nedan - men när jag sen ska koda fram 65 minus användarens ålder hen anger så vet jag inte hur jag ska få det som en string. Nån som bara kan slussa mig i rätt riktning?

static void Main(string[] args) { string firstName, lastName, age, fullName; Console.WriteLine("Vänligen ange förnamn."); firstName = Console.ReadLine(); Console.WriteLine("Vänligen ange efternamn"); lastName = Console.ReadLine(); Console.WriteLine("Hur gammal är du?"); age = Console.ReadLine(); fullName = String.Concat(firstName, " ", lastName); Console.WriteLine("Hej " + fullName + "." + "Du har antal år till pensionen.");

Ska jag nånstans skriva (och var i koden lägger jag detta i så fall):

int retirement = 65; int yearstoRetirement = retirement - age;

?

Sen vill jag ju såklart få yearstoRetirement att synas i den sista strängen som "Hej Anders Andersson. Du har x år kvar till pensionen." Där x då är yearstoRetirement på något sätt.

Lägger man då det som följande:

Console.WriteLine("Hej " + fullName + "." + "Du har " + yearstoRetirement + "år till pensionen.");

Tacksam för lite hjälp på traven, känner mig hopplös med detta titt som tätt.

EDIT: jag måste nog nånstans använda Convert.ToInt32 - men vet inte hur i detta fallet.

Lagt till [code]-taggar / Mod
Permalänk
Medlem

@Uppgiven: Du försöker använda en sträng som en int vilket inte lär fungera, så du behöver konvertera age till en int först.

Nåt sånt här borde funka, dock skrivet direkt för frihand

Console.WriteLine("Hej " + fullName + "." + "Du har " + (65 - Convert.ToInt32(age)).ToString()" + "år till pensionen.");

Går så klart göra lite snyggare också men försökte göra det så enkelt som möjligt

Permalänk
Hedersmedlem

Hej, @Uppgiven, och välkommen till Sweclockers!

När du lägger in programkod på forumet är det jättebra om du skriver in [code] före och [/code] efter dina kodsnuttar. Jag har vart inne och lagt till det i ditt inlägg den här gången så det är lättare för alla att läsa.

Då blir din programkod mycket lättare att läsa på forumet. Bland annat kommer då dina indrag med.

Med vänlig hälsning,
pv2b (Moderator)

Permalänk
Hedersmedlem

När du läser in text från tangentbordet med hjälp av Console.Readline() så blir resultatet en sträng. Det beror ju på att användaren kan skriva vad som helst som svar på din fråga. Det kan ju vara allt från "13" till "Hej hopp", till inget alls kanske. En sträng är alltså en "textsnutt".

Det du behöver göra är att leta igenom din textsnutt och försöka göra den till ett heltal, som du kan göra matte med. Det finns lite olika sätt att göra detta på. Ett enkelt sätt är att göra något i den här stilen:

string ageInput; // Håller den inmatade texten för ålder int age; // Håller åldern som ett heltal // Fråga efter användarens ålder Console.WriteLine("Hur gammal är du?"); // Läs in användarens ålder från tangentbordet. ageInput = Console.ReadLine(); // Konvertera åldern till ett heltal age = Int32.Parse(ageInput);

OBS att sista raden här kommer att krascha ditt program om användaren matar in något som inte är en giltig ålder. Det här kan ju vara helt okej beroende på vad du vill göra! Som överkurs kan du använda Exception-hantering eller metoden Int32.TryParse för att hantera möjligheten att en användare skriver in något dumt och låta honom försöka igen. Det låter dock inte som att du är där än i kursen.

Lycka till!

Permalänk
Medlem

@improwise: Jaaa, såklart! Läste det i boken nu också! Tack tack! Jag ska testa detta!

Permalänk
Medlem

@pv2b: Aha! Tack som fan! Ska testa med detta - himla tur att man kan skriva här och få hjälp. Återkommer om jag totalmisslyckas

Permalänk
Medlem
Skrivet av Uppgiven:

@pv2b: Aha! Tack som fan! Ska testa med detta - himla tur att man kan skriva här och få hjälp. Återkommer om jag totalmisslyckas

Du låter inte @Uppgiven längre.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem

@improwise: I have succeeded! Tusen tack - detta var ju döenkelt!

Permalänk
Medlem

@Leedow: Hahaha, jag lär bli Uppgiven när jag tar mig an inlämningsuppgift 2 wait and see!

Permalänk
Hedersmedlem
Skrivet av Leedow:

Du låter inte @Uppgiven längre.

Skrivet av Uppgiven:

@improwise: I have succeeded! Tusen tack - detta var ju döenkelt!

Nä, det var du ju inte!

Hör gärna av dig till oss moderatorer om du vill vara kvar på forumet med ett lite mer positivt namn än "Uppgiven" inför framtiden. Inget krav alltså, bara ett tips ifall du vill.

Med vänlig hälsning,
pv2b (Moderator)