C++ : Logika Loop

Pernyatan loop digunakan untuk mengulang block statement dari suatu pernyataan program. Fungsi loop umumnya dikombinasikan dengan fungsi if untuk membatasi jumlah perulangan.

Bentuk dasarnya:

loop:
	pernyataan_yang_ingin_diulang;
	
if(batasan)
	goto loop;

Contoh kasus:

#include "stdafx.h"
#include <iostream>

using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
	int i(1), sum(0), max(10);

	loop:
		sum += 1;

	if(++i <= max)
		goto loop;

	cout << endl << "sum = " << sum << endl;
	cout << "i = " << i << endl;	

	return 0;
}

Hasil :

Penjelasan Koding

Mengapa hasil dari loop adalah 10, sedangkan i-nya 11?
Intinya ada pada baris

loop:
	sum += 1;

if(++i <= max)
	goto loop;

Mari kita baca kode tersebut.

  1. Pada tahap pertama, status sum=0, i=1 dan max=10.
    Maka, nilai dari "sum += 1" adalah 1, maka sum = 1.
    Kemudian, nilai dari "++i" adalah 1, maka nilai if dari "++1 <= max" adalah TRUE/BENAR, karena 1 lebih kecil dari 10. Karena benar, maka nilai sum dan i disimpan.
  2. Pada tahap kedua, status sum=1, i=2 dan max=10.
    Maka, nilai dari "sum += 1" adalah 2, maka sum = 2.
    Kemudian, nilai dari "++i" adalah 2, maka nilai if dari "++1 <= max" adalah TRUE/BENAR, karena 2 lebih kecil dari 10. Karena benar, maka nilai sum dan i disimpan.
  3. Karena terlalu berulang, kita lompati hingga i nilainya 10 saja.
  4. Pada tahap kesepuluh, status sum=9, i=10 dan max=10.
    Maka, nilai dari "sum += 1" adalah 10, maka sum = 10.
    Kemudian, nilai dari "++i" adalah 10, maka nilai if dari "++1 <= max" adalah TRUE/BENAR, karena 10 sama dengan 10. Karena benar, maka nilai sum dan i disimpan.
  5. Pada tahap kesebelas, status sum=10, i=11 dan max=10.
    Maka, nilai dari "sum += 1" adalah 11, maka sum = 11.
    Kemudian, nilai dari "++i" adalah 11, maka nilai if dari "++1 <= max" adalah FALSE/SALAH, karena 11 lebih besar dari 10. Karena salah, maka nilai sum tidak disimpan, namun i disimpan.
  6. Oleh karena itu, nilai akhirnya adalah sum=10, i=11.

Incoming search terms:

Kamu mungkin ingin membaca ini juga:

Leave a Reply

Your email address will not be published. Required fields are marked *