• 1
  • 2
2016-01-25, 20:27
  #13
Medlem
Bennybandits avatar
Citat:
Ursprungligen postat av Finkelstrut
Syntaxfel! Du ska inte stänga if-satsen med ;
Samma gäller else if.

else ska heller inte innehålla något påstående som ger true/false. Else är bara ANNARS.

I en if-sats skriver du ett påstående som antingen är TRUE eller FALSE.

Kod:
if(true)
{
Console.Write("Denna kod körs då påstående är TRUE!");
}
------------
if(10 > 1)
{
Console.Write("Detta körs också, då påståendet 10 är större än 1 är TRUE!");
}

Kod:

if(1 > 2) //avsluta inte med ; här.
{
//Påståendet är FALSE då 1 inte är större än 2.
//Koden innanför dessa brackets körs alltså inte.
//Den går istället vidare till nästa påstående nedan:
}
else if(1 > 3)
{
//Påståendet är false då 1 inte är större än 3.
//Koden här körs inte.
//Den går istället vidare till vår ELSE
//Else innehåller inget eget påstående
}
else
{
//Denna kod körs om ingen av de tidigare påstående är TRUE.
}


YES! Fick ihop det nu, fan vad skönt!
Tack så mycket för svaret, guld värt.
Citera
2016-01-26, 17:17
  #14
Medlem
Bennybandits avatar
På en uppgift där man ska göra ett eget program har jag fastnat där man ska räkna ihop ålder x 365 dagar och införa variabler, hade något fel på int/string i början, inget av dem gick att använda. Har kommit rätt långt och la även till att man ska kunna svara "Ja" och "Nej" för att träna lite mer, sen trasslade jag till det ju mer jag försökte och nu har jag tappat tråden helt efter raden "if (ja.ToUpper() == "JA")"

Ditt program ska:
Läsa in användarens för och efternamn
Hälsa användaren välkommen
Fråga användaren om deras ålder
Räkna ut antalet dagar utifrån ålder och presentera detta.

{
Console.WriteLine("Hej! Vad heter du?");

string namn;

namn = Console.ReadLine();

Console.WriteLine("Hej och välkommen " + namn + " till mitt program");

Console.WriteLine("Hur gammal är du? ");

string alder;

alder = Console.ReadLine();

Console.WriteLine("Okej, " + alder + " är ingen ålder, du hinner fortfarande uträtta stordåd i ditt liv!");

Console.WriteLine("Vill du veta en sak? ");

string ja = Console.ReadLine();

if (ja.ToUpper() == "JA")

alder = Console.ReadLine();

int dagarvalue = Convert.ToInt32(365);

{

Console.WriteLine("Du är" + (dagarvalue * alder) + " dagar gammal");
}

string nej = Console.ReadLine();

else if (nej.ToUpper() == "NEJ")

{
Console.WriteLine("Okej, strunta i det då!");
}
else
{

}

Console.ReadLine();

}
}
}

Får lite fel på "else" och "*" bland annat, sen trasslade jag till det ytterligare ju mer jag försökte.

Går väl att klistra in i VS och se hur jag trasslat till det och fått ytterligare fel på olika ställen.
Blev glad att det flöt på så fint fram tills att man skulle räkna och införa fler variabler osv.

Någon?
Citera
2016-01-26, 21:01
  #15
Medlem
John-Pauls avatar
Gör om och rätt efter raden
if (ja.ToUpper() == "JA")

Tips, ska du ha fler än ett uttryck inom ett villkor så ska dessa uttryck omgärdas av måsvingar, alltså:
if (ja.ToUpper() == "JA")
{ // Start block. Ett eller flera uttryck följer under villkoret ovan
Ett uttryck här;
Ett till uttryck här;
// osv;
} // Slut block. Ett eller flera uttryck hat skett ovan om villkoret ovan var sant

C# är blockorienterat, använd konstant block tills du blivit varm i kläderna.
Ex:
int a = 0;
int b = 0;
if (a==b)
{
Console.WriteLine("Heltalet i variabel a är lika med heltalet i variabel b");
// eventuellt flera uttryck här som ska exekveras
}
else
{
Console.WriteLine("Heltalet i variabel a är inte lika med heltalet i variabel b");
// eventuellt flera uttryck här som ska exekveras
}
Citera
2016-01-27, 12:36
  #16
Medlem
Känner mig snäll

Kod:
//Variabler kan man fördel deklareras längst upp i en class
string namn;
int age = 0;
int ageInDays = age*365;

Console.WriteLine("Hej! Vad heter du?");

name = Console.ReadLine();

Console.WriteLine("Hej och välkommen " + name + " till mitt program");

Console.WriteLine("Hur gammal är du? ");

age = Convert.ToInt32(Console.ReadLine()):

Console.WriteLine("Okej, " + age + " är ingen ålder, du hinner fortfarande uträtta stordåd i ditt liv!");

Console.WriteLine("Vill du veta en sak? (Ja/Nej)");

string question = Console.ReadLine();

if (question.ToUpper() == "JA")
{
Console.WriteLine("Du är" + ageInDays + " dagar gammal");
}
else if (question.ToUpper() == "NEJ")
{
Console.WriteLine("Okej, strunta i det då!");
}
else {
Console.WriteLine("Svara Ja eller Nej..");
}
Citera
2016-01-27, 21:23
  #17
Medlem
Bennybandits avatar
Tackar så hjärtligt för svaren John-Paul och Mikeisch!

Citat:
Ursprungligen postat av Mikeisch
Känner mig snäll

Kod:
//Variabler kan man fördel deklareras längst upp i en class
string namn;
int age = 0;
int ageInDays = age*365;

Console.WriteLine("Hej! Vad heter du?");

name = Console.ReadLine();

Console.WriteLine("Hej och välkommen " + name + " till mitt program");

Console.WriteLine("Hur gammal är du? ");

age = Convert.ToInt32(Console.ReadLine()):

Console.WriteLine("Okej, " + age + " är ingen ålder, du hinner fortfarande uträtta stordåd i ditt liv!");

Console.WriteLine("Vill du veta en sak? (Ja/Nej)");

string question = Console.ReadLine();

if (question.ToUpper() == "JA")
{
Console.WriteLine("Du är" + ageInDays + " dagar gammal");
}
else if (question.ToUpper() == "NEJ")
{
Console.WriteLine("Okej, strunta i det då!");
}
else {
Console.WriteLine("Svara Ja eller Nej..");
}

Blir finfint efter hjälpen, bara det att den inte räknar ut ageInDays, sökt runt lite och försökt olika sätt att skriva in det korrekt när man gör "int ageInDays = age*365" på men den säger att jag är 0 dagar gammal. Någon som vet hur man skriver den multiplikations-raden mer exakt? Kanske är något annat fel än just den raden som påverkar? Bild: http://imgur.com/pAsIZ5r

Citera
2016-01-27, 21:29
  #18
Medlem
Bennybandits avatar
Det var inget förresten! Löste det själv (stolt).

Använde inte "int ageInDays" alls, utan skrev om multiplikationsraden till

Console.WriteLine("Du är " + age*365 + " dagar gammal");



Edit:
{
Console.WriteLine("Svara Ja eller Nej...");
}

Kan man göra så att det händer något om användaren Nu svarar ja/nej, att svaren för ja/nej upprepas igen? För nu när man säger åt personen att svara Ja eller Nej så blir det ju inget mer efter det.

Försökte copy-paste allt efter "if" men det gick ju sådär.
__________________
Senast redigerad av Bennybandit 2016-01-27 kl. 21:44.
Citera
2016-03-04, 15:54
  #19
Medlem
Citat:
Kan man göra så att det händer något om användaren Nu svarar ja/nej, att svaren för ja/nej upprepas igen? För nu när man säger åt personen att svara Ja eller Nej så blir det ju inget mer efter det.

Hur menar du att svaren upprepas igen? Det som nu händer när någon svarar JA eller NEJ är att den antingen talar om Ålder i dagar eller säger "Okej, strunta i det då" vad är det mer du vill ska hända?

Det som nu händer är att EN utav IF delarna (antingen JA, antingen NEJ eller antingen den sista ELSE [om man inte skriver JA eller NEJ]) kommer att köras, och endast en utav dem.
Efter det så körs koden från nästa rad, se nedan.

Kod:
if (question.ToUpper() == "JA")
{
    
Console.WriteLine("Du är" ageInDays " dagar gammal");
}
else if (
question.ToUpper() == "NEJ")
{
    
Console.WriteLine("Okej, strunta i det då!");
}
else 
{
    
Console.WriteLine("Svara Ja eller Nej..");
}

Console.WriteLine("Nu när ett utav ovanstående kodstycken har körts färdigt så kommer den här texten att skrivas"); 

Ledsen om jag inte uppfattade ditt problem, beskriv så gott du kan så ska jag se om jag kan hjälpa till!

Och BTW! Tänk på att (Ålder i ÅR) multiplicerat med (365) inte blir helt korrekt antal dagar, då vi har skottår vart fjärde år
Citera
2016-03-04, 18:12
  #20
Medlem
Citat:
Ursprungligen postat av Bennybandit
Det var inget förresten! Löste det själv (stolt).

Använde inte "int ageInDays" alls, utan skrev om multiplikationsraden till

Console.WriteLine("Du är " + age*365 + " dagar gammal");



Edit:
{
Console.WriteLine("Svara Ja eller Nej...");
}

Kan man göra så att det händer något om användaren Nu svarar ja/nej, att svaren för ja/nej upprepas igen? För nu när man säger åt personen att svara Ja eller Nej så blir det ju inget mer efter det.

Försökte copy-paste allt efter "if" men det gick ju sådär.

Du vill alltså att den ska fortsätta fråga tills du får antingen ja eller nej som svar?
Detta kan åstadkommas med en loop. Har du provat på det?

Kod:
//Variabler kan man fördel deklareras längst upp i en class
            
string name;
            
int age 0;
            
int ageInDays age 365;

            
Console.WriteLine("Hej! Vad heter du?");

            
name Console.ReadLine();

            
Console.WriteLine("Hej och välkommen " name " till mitt program");

            
Console.WriteLine("Hur gammal är du? ");

            
age Convert.ToInt32(Console.ReadLine());

            
Console.WriteLine("Okej, " age " är ingen ålder, du hinner fortfarande uträtta stordåd i ditt liv!");

            
string question;
            do 
//Gör det som är innanför måsvingen
            
{
                
Console.WriteLine("Vill du veta en sak? (Ja/Nej)");
                
question Console.ReadLine().ToUpper();
                if(!
question.Equals("JA") || question.Equals("NEJ"))
                {
                    
Console.WriteLine("Svara Ja eller Nej..");
                }
            }
            while (!
question.Equals("JA") || question.Equals("NEJ")); //Oändligt antal gånger tills dess att något av villkoren uppfylls. Det är vad "||" betyder. Dvs. Antingen A ELLER (||) B

            
if (question.ToUpper() == "JA")
            {
                
Console.WriteLine("Du är" ageInDays " dagar gammal");
            }
            else  
            {
                
Console.WriteLine("Okej, strunta i det då!");
            } 
__________________
Senast redigerad av Reisti 2016-03-04 kl. 18:31.
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