C# hälp med True eller False.

Permalänk
Medlem

C# hälp med True eller False.

Jag ska göra följande uppgift:

/* Skapa en boolsk variabel skriva och tilldela ett värde.
Skriv ett villkor som kontrollerar om skriva är sant.
Om skriva är sant så skriv ut skriva är sant till skärmen
Annars skriver du ut skriva är falskt till skärmen*/

Jag kom fram till svaret nedan men min lärare sa att jag ska kontrollera om variabeln skriva är true eller false med en if-sats , inte variabeln Spara. Om jag gör så då blir det hela tiden true eller hela tiden false. Jag vet inte hur jag ska fixa det. Om jag använder variabeln spara så blir det väldigt enkelt att fixa det men läraren sa att det måste vara med variabeln skriva. Vad gör jag fel???

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

namespace boolean_skriva
{
class Program
{
static void Main(string[] args)
{
bool Skriva = true;
String Spara = Console.ReadLine().ToLower();
Spara.Trim();

Console.WriteLine("Skriv Sant/Falsk för att ange ett värde till skriva:");

if (Skriva)
{
Console.WriteLine("Skriva är:" + Skriva);
}
else
{
Console.WriteLine("Skriva är:" + Skriva);
}
Console.ReadKey();
}
}
}

Permalänk
Medlem

if (Spara == "sant") Skriva = true; else Skriva = false; if (Skriva) { Console.WriteLine("Skriva är:" + Skriva); } else { Console.WriteLine("Skriva är:" + Skriva); }

Visa signatur

AW3423DW QD-OLED - Ryzen 5800x - MSI Gaming Trio X 3090 - 64GB 3600@cl16 - Samsung 980 Pro 2TB/WD Black SN850 2TB

Permalänk
Medlem

så jag visste inte att jag måste ha en till if-sats for att if (skriva) skulle funka bra..

verkligen, tack så mycket!

Permalänk
Medlem
Skrivet av celoz:

if (Spara == "sant") Skriva = true; else Skriva = false; if (Skriva) { Console.WriteLine("Skriva är:" + Skriva); } else { Console.WriteLine("Skriva är:" + Skriva); }

Det finns ingen vettig programmerare som skulle lösa det så där, men problemet är ju underligt formulerat..

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Inaktiv

Detta kanske hjälper dig förstå

class Program { static void Main(string[] args) { bool sant = false; Console.WriteLine("Skriv sant/falsk för att ange ett värde till skriva:"); String sparat = Console.ReadLine().ToLower(); //Sparat är nu en sträng med ett värde sparat.Trim(); //Kolla om det står sant och tilldela if(sparat.equals("sant") { sant = true; } //Skriv ut resultatet if (sant) { Console.WriteLine("Variabeln är sann"); } else { Console.WriteLine("Variabeln är falsk"); } Console.ReadKey(); } } class Program2 { //Kortare variant //Skriver ut "Variabeln är false" eller Variabeln är true" static void Main(string[] args) { Console.WriteLine("Skriv sant/falsk för att ange ett värde till skriva:"); Console.WriteLine("Variabeln är " + Console.ReadLine().ToLower().equals("sant")); Console.ReadKey(); } }

Permalänk
Medlem
Skrivet av Teknocide:

Det finns ingen vettig programmerare som skulle lösa det så där, men problemet är ju underligt formulerat..

En switch-sats hade varit smartare men han har nyss börjat med villkorssatser så varför göra någonting mer komplicerat.

Visa signatur

AW3423DW QD-OLED - Ryzen 5800x - MSI Gaming Trio X 3090 - 64GB 3600@cl16 - Samsung 980 Pro 2TB/WD Black SN850 2TB

Permalänk
Medlem

tack alla för sina svar XD, jag fick ganska mycket hälp XD...

Permalänk
Medlem

killbom från vilket "using" tog du equals? cuz jag kan inte använda det.

Permalänk
Medlem
Skrivet av celoz:

En switch-sats hade varit smartare men han har nyss börjat med villkorssatser så varför göra någonting mer komplicerat.

Jag tänkte snarare att koden du skrev kan förenklas ned till Console.WriteLine("Skriva är:{0}", Spara == "sant")

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Testpilot
Skrivet av Mystogan:

Om jag gör så då blir det hela tiden true eller hela tiden false. Jag vet inte hur jag ska fixa det. Om jag använder variabeln spara så blir det väldigt enkelt att fixa det men läraren sa att det måste vara med variabeln skriva. Vad gör jag fel???

Är det helt enkelt inte meningen att det ska bli samma svar hela tiden? alltså ett program helt utan användarinput men som lär dig if och else. Det står vad jag kan se inget i uppgiften om att användaren som kör programmet ska kunna välja innehållet i variabeln skriva.

skriva = true; //eller false om man vill koda så, valet görs alltså i källkoden if(skriva){ write('skriva är true'); }else{ write('skriva är false'); }

Programmet är ju självklart idiotiskt och fyller ingen funktion men så är många program man skriver i kurser, det skulle ju kunna förkortas till bara

write('skriva är true');

Visa signatur

Kolla gärna in min RGB-LED-ljusstake i galleriet
[Gigabyte GA-Z97MX-Gaming 5][Intel Core i5 4690K][Corsair XMS3 16GB][Asus GeForce RTX 2060 Super Dual Evo OC]