int i, m;
int dlugosc_linii = 3;
for(i=0 ; i < 4 ; i = i + 1)
{
for(m = 0 ; m < 10 ; m = m + 1)
{
std::cout << "*";
if(m > dlugosc_linii)break;
}
std::cout << "\nKontynuujemy zewnetrzna petle"
<< " for dla i = " << i << "\n";
}
po wykonaniu tego programu wypisuje coś takiego
ale czemu on wypisuje 5 gwiazdek skoro wyraznie pisze ze
m > dlugosc_linii
czyli powinno wypisac 7 drugi program
for(int k = 0 ; k < 12 ; k = k + 1)
{
std::cout << "A";
if(k > 1) continue;
std::cout << "b\n";
}
wynik
no i o co chodzi jest
k < 12
a pojawilo sie 14 liter i czemu wypisalo AA… skoro potem kazde k > 1
Wszystko przykłady z Symfonii, gdzie wszystko jest klarownie opisane, więc w czym problem?
1: dlugosc_linii to 3, więc wypisuje dla m = 0, 1, 2, 3 (są równe), 4 wypisuje i dopiero teraz przerywa (4 > 3), czyli jest 5 w sumie.
2: Ech no co mam napisać? Wszystko pięknie objaśnione w Symfonii C++, rzecz nie jest trudna. Wypisuje Ab i nowa linia dla k =0, to samo dla k = 1, a później warunek jest spełniony - k jest większe od jeden. continue powoduje przejście do następnej iteracji, czyli opuszczone zostaje wypisywanie “b\n”.
nr47 nie rozumiem czemu w programie z gwiazdkami “przerywa” po tym jak przyjmie wartość >3 i wypisuje ją a w drugim programie “przerywa” i nie przyjmuje już tej większej wartości
innymi słowy
II program
wypisuje Ab dla 0,1
jest 1>1 //to jest według mnie dobrze
I program
wypisuje gwizadki dla 0,1,2,3,4
a jest 4>3 // czemu drukuje gwiazdkę również dla 4
ciekaw jestem jak Ty sie tego nauczyłeś skoro nie umiesz czytać ze zrozumieniem
wytłumaczyłeś program który w 100% rozumiem
…
nie rozumiem czemu wypisuje 5 gwiazdek zamiast 4
PS
komentarze typu:
zachowaj dla siebie i nawet nie próbuj mówić, że to po prostu “rada”. Jeśli nie chcesz pomóc łaski bez nigdy indywidualnie nie prosiłem Cie o pomoc a tym bardziej o komentarz