Som besökare på Hamsterpaj samtycker du till användandet av s.k. cookies för att förbättra din upplevelse hos oss. Jag förstår, ta bort denna ruta!
Annons

Hjälp med c#

Skapad av Kaouz, 2012-06-03 22:51 i Webbutveckling & Programmering

5 418
8 inlägg
0 poäng
Kaouz
Visningsbild
P 27 Hjälte 160 inlägg
0
Hej, först och främst vill jag säga att jag är en nybörjare på programmering, så förvänta er inte allt för mycket ifrån mig.

Jag har (med hjälp ifrån csharp-station.com) gjort ett program som ber användaren att skriva ett nummer. När användaren gjort det så talar programmet/datorn (eller vad man nu ska kalla det) om för användaren om numret som angavs är större eller mindre än 10.

Ett stycke C#-kod:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LekOTest
{
class Program
{
static void Main(string[] args)
{
string myInput;
int myInt;

Begin:

Console.Write("Please enter a number: ");
myInput = Console.ReadLine();
myInt = Int32.Parse(myInput);

if (myInt > 10)
Console.WriteLine("Your number is bigger than 10.", myInt);

else
{
Console.WriteLine("Your number is less than 10.", myInt);
}

Här skulle jag vilja ha någon form av if sats eller ngt liknande som skickar ett felmeddelande om inputen inte är en siffra.

tänkte att jag kunde skriva på något liknande sätt..:

if (myInt != en siffra)
Console.WriteLine("You input is not correct.");
men hehe ja, det ser vi ju alla att det inte funkar :P
Ett stycke C#-kod:

Decide:

Console.WriteLine("Do you want to continue or do you want to quit?");
Console.WriteLine("Press "C" to continue and "Q" to quit.");
Console.WriteLine("Don't forget it's case-sensitive.");

myInput = Console.ReadLine();

switch (myInput)
{
case "C":
goto Begin;
case "Q":
Console.WriteLine("Bye!");
break;
default:
Console.WriteLine("Your input {0} is incorrect.", myInput);
goto Decide;
}
}
}
}



Som ni säkert ser så kan jag ju inte göra som jag gjorde i "Decide" delen. Därför att då måste det vara en exakt versal, gemen eller siffra. Det blir då alltså inte ett fritt val att välja vilken siffra man vill skriva som input.

Hoppas jag har varit klar och korrekt i hur jag utryckt mig så alla förstår :P

Tack på förhand!

//Kaouz

Ingen status

Är reklamen ivägen? Logga in eller registrera dig så försvinner den!

Mynameistaken
Visningsbild
P 33 Kalmar Hjälte 5 427 inlägg
0

Svar till Kaouz [Gå till post]:
Är inte jättegrym på C#, eller programmering ö.h.t, men när jag läste en inledande kurs gjorde jag såhär:

Ett stycke C#-kod:
while (true)
{
try
{
Console.Write("Ange summan: ");
sum = double.Parse(Console.ReadLine());
if (sum < 1)
{
Console.BackgroundColor = ConsoleColor.Black;
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("
Totalsumman måste vara över en krona.
");
Console.ResetColor();
continue;
}
break;
}
catch (FormatException)
{

Console.BackgroundColor = ConsoleColor.Black;
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("
Endast tal.
");
Console.ResetColor();
}
}

Det var bättre förr.

Nolifer
Visningsbild
P 35 Hjälte 204 inlägg
0

Svar till Kaouz [Gå till post]:
Hängde inte riktigt med på vad din fråga var, men du menar alltså att när den frågar efter ett tal så matar du in en bokstav istället? Och att detta inte funkar?

Om jag tolkat rätt så är svaret enkelt, det är för att du använder dig av en integer. En integer kan bara läsa jämna siffror, alltså inte decimaltal eller bokstäver. Anledningen jag tror till att du inte kan få upp ett felmeddelande är helt enkelt pga att det är fel inmatningsformat och det gör att det blir fel i hela programmet.

Hur du ska göra för att lösa detta vet jag dock inte helt hundra men jag kan fundera lite på saken :)

Jag är glad och social mest hela tiden! Det är faktiskt sant, jag lovar!

Kaouz
Visningsbild
P 27 Hjälte 160 inlägg
Trådskapare
0
Svar till Nolifer [Gå till post]:
Jo jag förstår att det måste vara en siffra, men om nu användaren råkar eller bara helt enkelt inte förstår detta och skriver in en bokstav eller liknande istället så vill jag ha ett felmeddelande som förklarar det :)

Svar till Mynameistaken [Gå till post]:
Jo det skulle nog kunna funka. Men, vad blir sum då? Är det en int eller double eller vad är det?

Ingen status

Mynameistaken
Visningsbild
P 33 Kalmar Hjälte 5 427 inlägg
0

Svar till Kaouz [Gå till post]:
Ska du bara ha heltal kan du köra med ints.

Det var bättre förr.

Kaouz
Visningsbild
P 27 Hjälte 160 inlägg
Trådskapare
0

Svar till Mynameistaken [Gå till post]:
Okej men hur?

Ingen status

Joel
Visningsbild
P Hjälte Många söta inlägg
0
Svar till Kaouz [Gå till post]:
Inte för att jag är någon C#-guru, eller har programmerat i C# någon gång i hela mitt liv, men poängen är att du har får en exception om användaren inte matar in ett giltigt tal. Läs på om exceptions!

Och... kasta goto åt helvete! :D

Kaka

Nikkster-
Visningsbild
P Hjälte 117 inlägg
0
Egentligen vore det bästa om du bytte från datatyp int (heltal) till double (flyttal) för att undvika att få felmeddelande om användaren började skriva in en massa decimaler och dylikt. Hur som helst, metoden tryParse() gör hela arbetet åt dig.

Ett stycke C#-kod:

bool isInt = int.tryParse(myInput, out myInt);
if (isInt)
{
// OK
}

Ingen status


Forum » Datorer & IT » Webbutveckling & Programmering » Hjälp med c# 

Ansvariga ordningsvakter:

Användare som läser i den här tråden just nu

1 utloggad

Skriv ett nytt inlägg

Hej! Innan du skriver om ett potentiellt problem så vill vi påminna dig om att du faktiskt inte är ensam. Du är inte onormal och världen kommer inte att gå under, vi lovar! Så slappna av och gilla livet i några minuter - känns det fortfarande hemskt? Skriv gärna ner dina tankar och frågor, vi älskar att hjälpa just dig!

Den här tråden är äldre än Rojks drömtjej!

Det senaste inlägget i den här tråden skrevs för över tre månader sedan. Är du säker på att du vill återuppliva diskussionen? Har du något vettigt att tillföra eller passar din fråga i en ny tråd? Onödiga återupplivningar kommer att låsas så tänk efter en extra gång!

Hjälp

Det här är en hjälpruta

Här får du korta tips och förklaringar om forumet. Välj kapitel i rullningslisten här ovanför.

Rutan uppdateras automagiskt

När du använder funktioner i forumet så visas bra tips här.


Annons
Annons
Annons
Annons