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

pętla for z char-em

Ostatnio zmodyfikowano 2016-01-31 16:21
Autor Wiadomość
locf
Temat założony przez niniejszego użytkownika
pętla for z char-em
» 2016-01-31 14:46:05
Dzisiaj ma prośbę o wytłumaczenie tej pętli
for
 (wiem - podstawy podstaw).
Wziąłem się za czytanie "Szkoły programowania ..." i tam znalazłem taki kod, w który nie wiem kiedy dokładnie jest przypisanie zmiennej typu char do pierwszego elementu tablicy oraz kiedy jest inkrementacja.

C/C++
#include <iostream>
#include <string>
using namespace std;

int main()
{
    string word = "?ate"; //1
   
    for( char ch = 'a'; word != "mate"; ch++ ) //2
    { //3
        cout << word << endl; //4
        word[ 0 ] = ch; //5
    }
    cout << "Petla sie skonczyla, a slowo to " << word << endl;
    return 0;
}

Program wykonuje się moim zdaniem tak:
1/pętla for sprawdza, czy
? ate
 jest identyczne ze słowem
mate
. Oczywiście
? ate
 nie jest identyczne ze słowem
mate
, więc zwraca fałsz, co w połączeniu z negacją w sumie daje prawdę, więc pętla się wykonuje.
2/w linii 5 pierwszemu elementowi tablicy zawierającej słowo
? ate
 przypisywany jest znak
'a'
.

3/Czy teraz - po nadpisaniu pierwszego elementu zmiennej
word
?- jest inkrementacja, bo momentu inkrementacji za bardzo nie jestem pewien ? Czyli znak
'a'
 zmienia się w znak
'b'
 po nadpisaniu zmiennej
word
 ?

5/pętla for sprawdza, czy
aate
 jest identyczne ze słowem
mate
. Oczywiście
aate
 nie jest identyczne ze słowem
mate
, więc zwraca fałsz, co w połączeniu z negacją w sumie daje prawdę, więc pętla się wykonuje.
6/w linii 5 pierwszemu elementowi tablicy zawierającej słowo
aate
 przypisywany jest znak
'b'
, który mamy z powodu wcześniejszej inkrementacji
'a'
 do
'b'
.
7/znów inkrementacja z
'b'
 do
'c'
 
To co powyżej napisałem jest prawidłowe, czy ten program działa trochę inaczej?

Trochę niecodzienna ta pętla, bo najpierw sprawdza zmienną, która jest trochę inna aniżeli wynikałoby to z początkowego znaku
'a'
, chodzi mi, że zaczyna pętla od
? ate
, które jest "poza" pętlą, nie zaś od
aate
.
P-144241
pekfos
» 2016-01-31 16:21:47
» Kurs C++ » Poziom 2Pętla for lekcja
Punkt 'Pętla for zapisana przy pomocy pętli do ... while'.
P-144252
« 1 »
  Strona 1 z 1