Czy petla while moze miec w swoim warunku nazwe zmiennej?

0

Czy petla while moze miec w swoim warunku konczącym pętle po prostu nazwe zmiennej? np.

while(tab[i]){

}

Bo jeśli tak to nie rozumiem- co ten warunek oznacza?

3

while (i) jest równoznaczne z while (i != 0) - wynika to wprost z definicji prawdy i fałszu w C++, gdzie 0 = fałsz, a jakakolwiek inna liczba = prawda.

0

To jak powinienem zinterpretować taką funkcję?

  • deklaracja i inicjalizacja zmiennych i,j
  • pętla while która się wykonuje do czasu gdy wartość pod indeksem "i" będzie fałszywa?
  • w pętli-instrukcja warukowa if, wykonująca się gdy tab[i] nie jest znakiem spacji
  • if wykonuje dodanie 1 do j , czyli i=1, a później znowu dodanie 1 do i czyli i=2 po pierwszym przejściu pętli?
 int i = 0, j = 0;
    while (tab[i]!=0)
    {
        if (tab[i] != ' ')
           tab[j++] = tab[i];
        i++;
    }

    return tab;
}
1

-pętla while która się wykonuje do czasu gdy wartość pod indeksem "i" będzie fałszywa?

Niekoniecznie zawsze chodzi w takim przypadku o fałsz. Z jednej strony – możesz nadać elementowi tablicy, lub lepiej: całej tablicy, explicite znaczenie "prawda/fałsz" (np. tablica określa dla każdego ucznia, czy zdał egzamin czy nie, a dopuszczalne wartości dla każdego elementu to 0 oraz 1). Z drugiej strony – możesz traktować wartości w tablicy np. jako informację o kodzie błędu/wyjątku. W tym drugim przypadku wartość 0 oznaczałaby, że błędu/wyjątku nie ma (teoretycznie to może być interpretowane jako "fałsz", ale w praktyce – jako rodzaj błędu/wyjątku), a każda inna wartość oznaczałaby konkretny jego rodzaj (np. dzielenie przez zero; dopuszczalne wartości dla każdego elementu to np. od 0 do 20).

1 użytkowników online, w tym zalogowanych: 0, gości: 1