Diskuze: Žádost o pomoc - proměnná typu char

Java Java Žádost o pomoc - proměnná typu char

Avatar
Pluhtík
Člen
Avatar
Pluhtík:

Zdravím :) ve škole mám základy programování v C# a jelikož bych chtěl po maturitě jít studovat IT (pravděpodobně Fakultu informatiky MU nebo ČVUT), tak zkouším programovat i v Javě, i když nejsem žádný expert. Zakoupil jsem si knihu Java od Elišky Roubalové a v druhé kapitole mám zadání:
"Do proměnné vykricnik typu char deklarované dříve v programu uložte znak vykřičníku pomocí kódu UNICODE (vykřičník má číslo 0021).
Bohužel mi ale program stále řádek podtrhává jako chybný, i když po kliknutí na zelenou šipku nahoře (Run main project) mi to dole píše "BUILD SUCCESSFUL (total time: 0 seconds)". Přikládám obrázky a zároveň žádám o pomoc. Podle řešení vzadu knihy mám vše tak, jak má být.
http://prntscr.com/9zvcn9
http://prntscr.com/9zvge6

Předem děkuji za Vaši pomoc :)

 
Odpovědět 6. února 20:54
Avatar
Atrament
Člen
Avatar
Odpovídá na Pluhtík
Atrament:

Máš to celé mimo tělo metody main, podívej se pořádně na ty složené závorky :)

 
Nahoru Odpovědět 6. února 21:16
Avatar
Pluhtík
Člen
Avatar
Pluhtík:

Díky za upozornění, očividně jsem trochu hrr a ani jsem si nepřečetl, cože to nahoře vlastně je, a kam že to mám psát :D

takhle je to prosím správně?

http://prntscr.com/9zvwou

Po kliknutí na "Run main project" by se nic stát nemělo, že? Alespoň podle mých zkušeností ze C#, protože jsem v podstatě jen nadeklaroval proměnné a přiřadil jim hodnoty, nezadal jsem ale příkaz, aby se ty hodnoty někde zobrazily, říkám to správně?

 
Nahoru Odpovědět 6. února 21:27
Avatar
Atrament
Člen
Avatar
Atrament:

Jo takhle je to lepší. Nic nikde nevypisuješ, takže po spuštění se nemá co stát, 'program' prostě proběhne a skončí.

 
Nahoru Odpovědět 6. února 21:38
Avatar
Pluhtík
Člen
Avatar
Pluhtík:

Děkuji za pomoc :) zítra se vrhnu na další kapitolu :)

 
Nahoru Odpovědět 6. února 22:15
Avatar
Pluhtík
Člen
Avatar
Pluhtík:

Zdravím, tak jsem se dnes dostal k další kapitole a opět jsem narazil na něco, čemu nerozumím. Jinak pro vysvětlení: knihu používám, protože je poněkud bohatší na teorii než tento web, určitě po ní zkusím také výuku Javy zde na webu on-line, a podle toho, co mi bude vyhovovat víc, si vyberu, jakým způsobem budu pokračovat v samostudiu :)
Takže v knize je napsané:

Logické operátory
Na proměnné typu boolean nebo na výrazy, jejichž výsledkem je logický typ, lze aplikovat i logické operátory. Základními operátory jsou logický součin (konjunkce), logický součet (disjunkce) a negace. Operátor negace se zapisuje jako vykřičník před proměnnou či výrazem a obrací jeho hodnotu, z pravdy na nepravdu a opačně.
Příklad:
boolean lez = false;
boolean pravda = !lez;

Co nechápu je vlastně jen ten poslední řádek. Pokud to chápu správně, tak proměnná nazvaná "lez" (na prvním řádku) a má "hodnotu" (nevím, jak lépe to vyjádřit, prosím o radu) "false", zatímco proměnná nazvaná pravda má hodnotu pravda, tudíž "!lez". **Nechápu ovšem, proč je to napsané v češtině, jak si s tím dokáže program poradit, proč tam není "!false"? **

 
Nahoru Odpovědět 12. února 22:31
Avatar
Atrament
Člen
Avatar
Atrament:

Proměnná pravda nemá hodnotu pravda, ona se tak prostě jmenuje :) A přiřadí se do ní !lez to znamená not hodnota promenné lez. Protože na předchozím řádku byla tato hodnota nastavena na false, tak do promenné pravda tak přiřadíš !false, takže true.

 
Nahoru Odpovědět 12. února 22:44
Avatar
tomisoka
Redaktor
Avatar
Odpovídá na Pluhtík
tomisoka:

Programu je naprosto jedno jaký jazyk(komunikační) je používán. Pro něj je to jen název proměnné, který ani nemusí dávat smysl.


boolean pravda = !lez;

toto do proměnné "pravda" dá znegovanou "lez", funguje i když "lez" je 'true'.


Nebylo by lepší založit nové vlákno?

 
Nahoru Odpovědět  +2 12. února 22:44
Avatar
Pluhtík
Člen
Avatar
Pluhtík:

Buď jste špatně pochopili moji otázku, nebo já špatně pochopil vaše odpovědi.

Vím, co znamená "!lez", znamená to v podstatě "pravda".
Moje otázka zní, proč je tam "!lez" a ne "!false", protože to "!lez! přece není název, ale hodnota a ta programu přece smysl dávat musí, nebo ne? A jestliže to je v češtině, ta hodnota, tak to program nepřečte, nebo se mýlím?

Nechtěl jsem zakládat nové vlákno, ať tu nespamuji, ale ok, příště to udělám.

Editováno 12. února 22:57
 
Nahoru Odpovědět 12. února 22:56
Avatar
Odpovídá na Pluhtík
Michael Škrášek:

lez je proměnná kterou jsi definoval na předchozím řádku jako false, ta potom vrací HODNOTU false a ty ji neguješ na true a ukládáš do pravda ...

Editováno 12. února 23:00
Nahoru Odpovědět 12. února 22:58
Proč to dělat složitě, když to jde jednoduše.
Avatar
Pluhtík
Člen
Avatar
Pluhtík:

Aha, konečně :) děkuji, chápu :)

 
Nahoru Odpovědět 12. února 23:13
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.