• 1
  • 2
2016-02-10, 17:48
  #1
Medlem
Hejsan, det är så att jag sitter och skriver lite på ett program, och vill fortfarande kalla mig mindre kunnig än en noob i C#.
Men det är så att mitt program ska kunna fråga användaren om den vill köra en gång till, användaren kommer sedan svara ja eller nej, vilket jag vill omvandla till antingen en 1:a eller 2:a, för att sedan då bestämma om en for-loop ska köras en gång till eller ej.

Kod:
Console.Write("Vill du köra appen en gång till? ");
RunOneMoreTime = Convert.ToInt32(Console.ReadLine());


Är ungefär så långt jag har kommit. Min tanke är att lägga in en if-sats för att kolla om svaret är ==Y, för att då omvandla det till en 1:a, eller ==N, för att då omvandla det till en 2:a. I så fall borde den if-satsen ligga mellan dessa två kodrader vad jag kan förstå???
Citera
2016-02-10, 18:45
  #2
Medlem
varför ska du ha det mellan raderna? det är väl bara att göra

Kod:
Console.Write("Vill du köra appen en gång till? ");
input = console.ReadLine();

if( input == 'Y' )
    // ja
else
   // nej

sen om det är ja sätt vad du nu vill till 1, och om det är nej sätt det till 2
?
Citera
2016-02-10, 21:02
  #3
Medlem
Ahaaaa, smart tänkt där :-D Se vad man får lära sig på sådana här forum...
Citera
2016-02-10, 21:24
  #4
Medlem
Mitt bekymmer nu är att jag vill jämföra både Y och y, har då använt mig av || men detta gillar inte VS då den inte kan användas till bools eller strängar.
Citera
2016-02-10, 22:35
  #5
Medlem
Citat:
Ursprungligen postat av Raffeboy
Mitt bekymmer nu är att jag vill jämföra både Y och y, har då använt mig av || men detta gillar inte VS då den inte kan användas till bools eller strängar.
Vad menar du?
Kod:
if (input == "Y" || input == "y"
eller så kan du ju alltid använda ToUpper:
Kod:
if (input.ToUpper() == "Y"
Citera
2016-02-10, 23:08
  #6
Medlem
Nja, det som strulade var att jag glömde ange variabelnamnet. Utan skrev bara (RunOnemoreTime =="N" || "n"). Men löste sig ganska snabbt, hade bara glömt denna tråd då...
Citera
2016-02-11, 22:38
  #7
Medlem
Jake88s avatar
Kod:
class Input
    
{
        public static 
Boolean YesNo()
        {
            
string input Console.ReadLine().ToLower();
            if (
input == "n") { return false; }
            if (
input == "y") { return true; }
            
Console.WriteLine("Wrong input try again! ");
            return 
YesNo();

        }
     } 

Då kan du göra
Kod:
Console.Write("Vill du köra appen en gång till? ");
if(
Input.YesNo()){//kör din kod igen} 
Citera
2016-02-13, 07:55
  #8
Medlem
Citat:
Ursprungligen postat av Jake88
Kod:
class Input
    
{
        public static 
Boolean YesNo()
        {
            ...
            return 
YesNo();

        }
     } 
Oändlig rekursion är inte att rekommendera. Bättre att använda t.ex. while(true).
Dessutom måste du kolla att ReadLine() inte returnerar null.
Citera
2016-02-13, 10:08
  #9
Medlem
tj.s avatar
Citat:
Ursprungligen postat av Jake88
Kod:
class Input
    
{
        public static 
Boolean YesNo()
        {
            
string input Console.ReadLine().ToLower();
            if (
input == "n") { return false; }
            if (
input == "y") { return true; }
            
Console.WriteLine("Wrong input try again! ");
            return 
YesNo();

        }
     } 

Då kan du göra
Kod:
Console.Write("Vill du köra appen en gång till? ");
if(
Input.YesNo()){//kör din kod igen} 
Denna skulle jag verkligen inte rekommendera någon att använda sig av.
Citera
2016-02-13, 21:18
  #10
Medlem
Jake88s avatar
Citat:
Ursprungligen postat av mongomannen
Dessutom måste du kolla att ReadLine() inte returnerar null.


Hur skulle den kunna göra det?
Citera
2016-02-13, 22:35
  #11
Medlem
tj.s avatar
Citat:
Ursprungligen postat av Jake88
Hur skulle den kunna göra det?
Vad sägs om string.IsNullOrEmpty(input) eller string.IsNullOrWhiteSpace(input)? Givetvis innan du gör en ToLower()
Citera
2016-02-13, 22:49
  #12
Medlem
Jake88s avatar
Citat:
Ursprungligen postat av tj.
Vad sägs om string.IsNullOrEmpty(input) eller string.IsNullOrWhiteSpace(input)? Givetvis innan du gör en ToLower()


Jag mena hur skulle Readline() kunna returnera null
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in