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í

 

 

hodnocení

2x

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

jirkaleaguecz*
hodnocení

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

Proč if nefunguje?

 

jarina
hodnocení

0x

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

 

mytrix*
hodnocení

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

 

hodnocení

0x
avatar yakub

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]