Proč if nefunguje?

Od: Datum: 27.11.16 16:46 odpovědí: 9 změna: 29.11.16 08:55

Dobrý den, ctěl bych se zeptat, proč mi tento kod nefunguje? vždy když to spustím, a napíši např ahoj a enter a zase ahoj, tak mi to napíše : ahoj a pod to nazdar. Nevíte jak to vyřešit? nebo v čem mám chybu? kód:

namespace BOT_xd
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Ahoj, jsem BOT. Můžeš si se mnou psát, ale nesmíš psát velká písmena, háčky a čárky.");
string txt = Console.ReadLine();

if (txt == "ahoj") ;
{
Console.WriteLine("Ahoj");
}
string txt1 = Console.ReadLine();

else if (txt1 == "nazdar") ;
{
Console.WriteLine("Nazdar");
}
Console.ReadKey();
}
}
}


Seznam odpovědí:
 
moment čekejte prosím, probíhá přenos dat...
Zobrazení struktury odpovědí v otázce
Skrytí struktury odpovědí v otázce
Zobrazení struktury odpovědí v otázce

 

Odpovědi na otázku:
Datum: 27.11.16 17:22

Nebylo specifikováno o jaký jazyk jde, ale asi máte navíc středníky za podmínkou ifu.

Ohodnoceno: 2x
 
Datum: 27.11.16 18:25

božee pardoon :D jazyk C#

Od: ctenar
Datum: 27.11.16 18:57

Taky bych řekl, že ty středníky za oběma if-y by tam neměly být.


doplněno 27.11.16 19:05:

Navíc je to tak blbé odsazené, že vůbec nechápu, kdy se má vykonávat ten modrý příkaz *sok**ee*


doplněno 28.11.16 08:30:

Čtu popis tvého problému ještě jednou a myslím, že už chápu, co chceš dělat.

Odstraň středníky po if.

Odstraň slovo "else" před druhým if.

Přečti si nějaký úvod do "příkazů" jazyka C# nebo obecný úvod do programování s popisem příkazu typu "if ... elseif ... then" a jak je správně používat, např. ohraničení bloku příkazů ("{", "}") a ukončení příkazu (";").

Ohodnoceno: 0x
 
Od: jarina
Datum: 27.11.16 18:49

NEní problém v tom že .Readline vrací text včetně (něco z toho/oboje) na konci?

Ohodnoceno: 0x
 
Datum: 27.11.16 20:48

To by mě zajímalo, v čem daný kód pouštíte, protože je chyba v samotné syntaxi. To Vám compiler nikdy nemůže spustit.

Konkrétně pak řádek před else if a ty středníky jsou taky špatně

Ohodnoceno: 0x
 
Od: jarina
Datum: 28.11.16 01:04

nic nepouštím. ; za zavorkou ifu muze znamenat prazdny prikaz.neni to tak?slusne ude na to upozorni

Ohodnoceno: 0x
 
Datum: 28.11.16 08:22
avatar

podle mě nemůže a pokud, tak to znehodnotí podmínku, protože odtrhne složenou závorku, která patří k podmínce. Mělo by to nahlásit chybu a nikoliv jen neprovést podmínku. Každopádně to prubněte umazat.

Ohodnoceno: 0x
 
Od: ctenar
Datum: 28.11.16 08:40

Ono to prázdný příkaz asi označovat bude, jenže po něm následuje ten blok příkazů a ne klíčové slovo elseif nebo then a proto to kompilátor bude zřejmě chápat jako ukončení celého if-u. Tedy if vyhodnotí podmínku, provede prázdný příkaz a program pokračuje dále v normálním běhu vykonáním toho druhého read-u.

Vsadím se, že když poprvé zadá místo "ahoj" něco jiného (třeba "Dobrý den"), že mu to pořád bude psát "Ahoj".

Ohodnoceno: 0x
 
Datum: 29.11.16 08:55
avatar

já bych viděl problém ve střednících za if a else if ...


doplněno 29.11.16 08:59:

edit: ted koukam, ze jsem odpovedel celkem pozde jsem mel historicky otevreno nekolik dotazu a dostal jsem se k odpovedim az dnes

Ohodnoceno: 0x
 

 

 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz

 
Copyright © 2004-2016 Poradna Poradte.cz. Všechna práva na poradně Poradte.cz vyhrazena.