Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Instrukcja pusta, else

Ostatnio zmodyfikowano 2013-10-09 19:59
Autor Wiadomość
ScruffyDrake
Temat założony przez niniejszego użytkownika
Instrukcja pusta, else
» 2013-10-06 19:42:27
Mam fragment programu:
C/C++
if( m > t )
     if( t <= e );
else cout << "Wniosek : " << " # " << endl;

I mam odpowiedzieć na dwa pytania:
1.Dlaczego else odwołuje się do
if( t <= e );
, a nie do
if( m > t )

2.Które wyrażenie będzie brane pod uwagę we wniosku ?
if( t <= e );
, a może
if( m > t )
 ?
Byłbym wdzięczny za wytłumaczenie.
P-93263
SeaMonster131
» 2013-10-06 20:18:31
1. Zrób klamrę:
C/C++
if( m > t )
{
    if( t <= e );
   
}
else cout << "Wniosek : " << " # " << endl;


Albo możesz też zrobić tak:
C/C++
if( m > t )
{
    if( t <= e );
    else cout << "Wniosek : " << " # " << endl;
   
}

i wtedy parser ładnie pokazuje do jakiego ifa odnosi się else.
P-93276
ScruffyDrake
Temat założony przez niniejszego użytkownika
» 2013-10-06 21:17:57
Czyli jakby była instrukcja:
C/C++
if( a > 50 ) cout << "Cos tam cos";
else if( a < 30 ) cout << "Cos";
else cout << "Ok";
To else odnosi się do else if ?
Powiem szczerze, że za bardzo nie rozumiem. W pierwszym przykładzie co podał SeaMonster131 wygląda to tak jakby else odwoływało się do pierwszego if, a nie drugiego. Jakbyście mogli to rozjaśnić, byłbym wdzięczny.
P-93292
kubawal
» 2013-10-06 21:18:53
else odnosi się do pierwszego if w bloku, które nie ma już swojego else

/edit: Tak.
P-93293
ScruffyDrake
Temat założony przez niniejszego użytkownika
» 2013-10-06 21:29:38
Mam jeszcze pytanie w zadaniu:
Co oznacza średnik w
if( t <= e );
?
Wiem, że oznacza to instrukcję pustą, tylko nie wiem czy dobrze rozumiem jej pojęcie. Jakby zamiast wyrażenia powyżej byłoby
if( t <= e ) cout << "Cos";
 to dane wyrażenie nie jest instrukcją pustą, zgadza się?
P-93294
kubawal
» 2013-10-06 21:31:05
Sam średnik to instrukcja która nie robi nic

To tak, jakbyś nie napisał tego if'a bo to się tak i tak nie wykona
P-93295
ScruffyDrake
Temat założony przez niniejszego użytkownika
» 2013-10-06 21:37:39
Czyli to jest instrukcja, która nie jest pustą:
if( t <= e ) cout << "Cos";

A to jest instrukcja pusta:
if( t <= e );

Zgadza się?
P-93296
Bajt
» 2013-10-09 19:45:55
W pierwszym przypadku program zwróci napis "Cos". Natomiast w drugim, nie wykona się żadna operacja, albowiem if nie zawiera kodu, który ma się wykonać gdy spełniony będzie jego warunek.
P-93422
« 1 » 2
  Strona 1 z 2 Następna strona