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

Pytanie o klamry w if'ie

Ostatnio zmodyfikowano 2016-03-22 22:39
Autor Wiadomość
jaśkoo
Temat założony przez niniejszego użytkownika
Pytanie o klamry w if'ie
» 2016-03-22 21:29:21
Mam takie pytanie konkretnie o taki fragment kodu- dlaczego bez klamer instrukcja "maxWartosc = obecnaWartosc;" sie nie wykona, przeciez ten if ma tylko jedna instrukcje, wiec klamry powinny byc opcjonalne.
C/C++
...
plik >> maxWartosc;

while( !plik.eof() )
{
    plik >> obecnaWartosc;
    if( obecnaWartosc > maxWartosc )
    {
        maxWartosc = obecnaWartosc;
    }
}
cout << maxWartosc;
...
P-146430
carlosmay
» 2016-03-22 21:40:30
przeciez ten if ma tylko jedna instrukcje, wiec klamry powinny byc opcjonalne.
Zgadza się. Czy poprawnie zapisany jest kod bez klamer?

C/C++
{
    int maxWartosc;
    int obecnaWartosc;
    plik >> maxWartosc;
    while( plik >> obecnaWartosc )
    {
        if( obecnaWartosc > maxWartosc )
             maxWartosc = obecnaWartosc;
       
    }
    std::cout << maxWartosc;
}

Pytanie

Bonus za tytuł postu. ;)
P-146432
jaśkoo
Temat założony przez niniejszego użytkownika
» 2016-03-22 21:50:15
tak wygląda cały kod.
C/C++
#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;

void max()
{
    int maxWartosc;
    int obecnaWartosc;
   
    fstream plik;
    plik.open( "liczby.dat", ios::in );
   
    if( plik.good() == false )
    {
        cout << "Pliku nie odnaleziono!";
        exit( 0 );
    }
    else
    {
        plik >> maxWartosc;
       
        while( !plik.eof() )
        {
            plik >> obecnaWartosc;
            if( obecnaWartosc > maxWartosc )
            {
                maxWartosc = obecnaWartosc;
            }
        }
        cout << maxWartosc;
    }
    plik.close();
}

int main()
{
    max();
    return 0;
}
P-146435
carlosmay
» 2016-03-22 21:52:16
W tym kodzie nie ma instrukcji warunkowej bez klamer.
P-146436
jaśkoo
Temat założony przez niniejszego użytkownika
» 2016-03-22 21:57:09
Tak, w tej nie ma. Wcześniej gdy nie bylo klamer instrukcja z ifa nie była wykonywana, ale to najwyraźniej był inny błąd. W takim razie mam kolejne pytanie jak to wygląda w praktyce czy niezależnie od ilości instrukcji w if'ie mile widziane są klamry, czy wg Was poprawia to jakoś czytelność kodu czy przeciwnie? Chodzi mi o to czy jest jakaś niepisana zasada odnośnie tego.
P-146438
carlosmay
» 2016-03-22 22:01:35
Pisz jak ci wygodnie. To tobie ma się wygodnie czytać co piszesz.
P-146439
mokrowski
» 2016-03-22 22:39:23
Pisz zawsze z klamrami. Takie zalecenie występuje np. w standardach kodowania dla systemów krytycznych (np. MISRA) i nie Tobie ma się czytać wygodnie a innym.
Jak stawiasz klamrę, podejmujesz świadomą decyzję co w tym bloku będzie.
Jak jej nie postawisz dajesz sobie szansę na popełnienie takich błędów jakie opisałeś.

Zdaję sobie sprawę że to temat "polityczny" więc postaram się już nie zabierać głosu :-)
P-146445
« 1 »
  Strona 1 z 1