Nejste přihlášen/a.

Přihlásit se do poradny

 

Proč if nefunguje?

Od: jirkaleaguecz* odpovědí: 9 změna:

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();
}
}
}

 

 

9 odpovědí na otázku
Řazeno dle hodnocení

 

 


2x

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

jirkaleaguecz*

božee pardoon :D jazyk C#

ctenar*

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


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 (";").

 

jarina

0x

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

 

mytrix*

0x

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ě

jarina

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

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.

ctenar*

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".

 


0x

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

 

 


 

 

 

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.

Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.

Copyright © 2004-2025 Poradna Poradte.cz. Všechna práva vyhrazena. Prohlášení o ochraně osobních údajů. | [tmavý motiv]