Pernyataan Bersyarat C: IF, IF Else dan Nested IF Else beserta Contohnya

Apa itu Pernyataan Bersyarat di C?

Pernyataan Bersyarat di C Pemrograman digunakan untuk mengambil keputusan berdasarkan kondisi. Pernyataan bersyarat dijalankan secara berurutan ketika tidak ada kondisi di sekitar pernyataan. Jika Anda memasukkan beberapa kondisi ke dalam blok pernyataan, alur eksekusi dapat berubah berdasarkan hasil yang dievaluasi oleh kondisi tersebut. Proses ini disebut pengambilan keputusan dalam 'C.'

Dalam pemrograman 'C' pernyataan kondisional dimungkinkan dengan bantuan dua konstruksi berikut:

1. Pernyataan jika

2. Pernyataan if-else

Ini juga disebut percabangan karena program memutuskan pernyataan mana yang akan dieksekusi berdasarkan hasil dari kondisi yang dievaluasi.

Jika pernyataan

Ini adalah salah satu pernyataan kondisional yang kuat. Pernyataan If bertanggung jawab untuk mengubah aliran eksekusi suatu program. Pernyataan if selalu digunakan dengan suatu kondisi. Kondisi ini dievaluasi terlebih dahulu sebelum mengeksekusi pernyataan apa pun di dalam tubuh If. Sintaks pernyataan if adalah sebagai berikut:

 if (condition) 
     instruction;

Kondisi tersebut bernilai benar atau salah. Benar selalu merupakan nilai bukan nol, dan salah adalah nilai yang mengandung nol. Instruksi dapat berupa instruksi tunggal atau blok kode yang diapit kurung kurawal {}.

Program berikut mengilustrasikan penggunaan konstruksi if dalam pemrograman 'C':

#include<stdio.h>
int main()
{
	int num1=1;
	int num2=2;
	if(num1<num2)		//test-condition
	{
		printf("num1 is smaller than num2");
	}
	return 0;
}

Keluaran:

num1 is smaller than num2

Program di atas mengilustrasikan penggunaan konstruk if untuk memeriksa persamaan dua bilangan.

Pernyataan If

  1. Pada program di atas, kita telah menginisialisasi dua variabel dengan num1, num2 dengan nilai masing-masing 1, 2.
  2. Kemudian, kita menggunakan if dengan ekspresi uji untuk memeriksa bilangan mana yang terkecil dan bilangan mana yang terbesar. Kami telah menggunakan ekspresi relasional dalam konstruksi if. Karena nilai num1 lebih kecil dari num2, kondisi akan bernilai benar.
  3. Dengan demikian ia akan mencetak pernyataan di dalam blok If. Setelah itu, kontrol akan keluar dari blok dan program akan dihentikan dengan hasil yang sukses.

Relasional Operatorso

C memiliki enam operator relasional yang dapat digunakan untuk merumuskan ekspresi Boolean untuk pengambilan keputusan dan kondisi pengujian, yang mengembalikan nilai benar atau salah :

< kurang dari

<= kurang dari atau sama dengan

> lebih besar dari

>= lebih besar atau sama dengan

== sama dengan

!= tidak sama dengan

Perhatikan bahwa tes kesetaraan (==) berbeda dari operator penugasan (=) karena ini adalah salah satu masalah paling umum yang dihadapi programmer saat mencampurkannya.

Sebagai contoh:

int x = 41;
x =x+ 1;
if (x == 42) {
   printf("You succeed!");}

Output:

 You succeed

Ingatlah bahwa kondisi yang bernilai bukan nol dianggap benar.

Sebagai contoh:

int present = 1;
if (present)
  printf("There is someone present in the classroom \n");

Output:

There is someone present in the classroom

Pernyataan If-Else

Pernyataan If-Else

Pernyataan if-else is adalah versi lanjutan dari If. Bentuk umum if-else adalah sebagai berikut:

if (test-expression)
{
    True block of statements
}
Else
{
    False block of statements
}
Statements;

n jenis konstruksi ini, jika nilai ekspresi pengujian benar, maka blok pernyataan yang sebenarnya akan dieksekusi. Jika nilai ekspresi uji salah, maka blok pernyataan palsu akan dieksekusi. Bagaimanapun, setelah eksekusi, kontrol akan secara otomatis ditransfer ke pernyataan yang muncul di luar blok If.

Program berikut mengilustrasikan penggunaan konstruksi if-else:


Kami akan menginisialisasi variabel dengan nilai tertentu dan menulis program untuk menentukan apakah nilainya kurang dari sepuluh atau lebih besar dari sepuluh.

Ayo mulai.

#include<stdio.h>
int main()
{
	int num=19;
	if(num<10)
	{
		printf("The value is less than 10");
	}
	else
	{
		printf("The value is greater than 10");
	}
	return 0;
}

Keluaran:

The value is greater than 10

Pernyataan If-Else

  1. Kita telah menginisialisasi variabel dengan nilai 19. Kita harus mencari tahu apakah bilangan tersebut lebih besar atau lebih kecil dari 10 menggunakan program 'C'. Untuk melakukan ini, kami telah menggunakan konstruksi if-else.
  2. Di sini kami telah memberikan kondisi num<10 karena kami harus membandingkan nilai kami dengan 10.
  3. Seperti yang Anda lihat, blok pertama selalu merupakan blok benar yang berarti, jika nilai ekspresi pengujian benar maka blok pertama yaitu If, akan dieksekusi.
  4. Blok kedua adalah blok lain. Blok ini berisi pernyataan yang akan dieksekusi jika nilai ekspresi pengujian menjadi salah. Dalam program kita, nilai num lebih besar dari sepuluh maka kondisi pengujian menjadi salah dan blok else dijalankan. Jadi, keluaran kita akan berasal dari blok lain yang “Nilainya lebih besar dari 10”. Setelah if-else, program akan berakhir dengan hasil yang sukses.

Dalam pemrograman 'C' kita dapat menggunakan beberapa konstruksi if-else di dalam satu sama lain yang disebut sebagai pernyataan if-else yang bertumpuk.

Ekspresi Bersyarat

Ada cara lain untuk menyatakan pernyataan if-else adalah dengan memperkenalkan ?: operator. Dalam ekspresi kondisional itu ?: operator hanya memiliki satu pernyataan yang terkait dengan if dan else.

Sebagai contoh:

#include <stdio.h>
int main() {
  int y;
  int x = 2;
   y = (x >= 6) ?  6 : x;/* This is equivalent to:  if (x >= 5)    y = 5;  else    y = x; */
   printf("y =%d ",y);
  return 0;}

Output:

y =2

Pernyataan If-else Bersarang

Ketika serangkaian keputusan diperlukan, if-else bertingkat digunakan. Bersarang berarti menggunakan satu konstruksi if-else di dalam konstruksi lainnya.

Mari kita menulis sebuah program untuk mengilustrasikan penggunaan if-else yang disarangkan.

#include<stdio.h>
int main()
{
	int num=1;
	if(num<10)
	{
		if(num==1)
		{
			printf("The value is:%d\n",num);
		}
		else
		{
			printf("The value is greater than 1");
		}
	}
	else
	{
		printf("The value is greater than 10");
	}
	return 0;
}

Keluaran:

The value is:1

Program di atas memeriksa apakah suatu angka kurang atau lebih besar dari 10 dan mencetak hasilnya menggunakan konstruksi if-else yang disarangkan.

Pernyataan If-else Bersarang

  1. Pertama, kita mendeklarasikan variabel num dengan nilai 1. Kemudian kita menggunakan konstruksi if-else.
  2. Di bagian luar if-else, kondisi yang diberikan akan memeriksa apakah suatu bilangan kurang dari 10. Jika kondisinya benar, maka kondisi tersebut akan mengeksekusi lingkaran dalam. Dalam hal ini, kondisinya benar maka blok dalam diproses.
  3. Di blok bagian dalam, kita kembali memiliki kondisi yang memeriksa apakah variabel kita berisi nilai 1 atau tidak. Jika suatu kondisi benar, maka blok If akan diproses, jika tidak maka blok else akan diproses. Dalam kasus ini, kondisinya benar, maka blok If akan dieksekusi dan nilainya akan dicetak pada layar output.
  4. Program di atas akan mencetak nilai a variabel dan keluar dengan sukses.

Coba ubah nilai variabel, lihat bagaimana program berperilaku.

CATATAN: Dalam if-else yang disarangkan, kita harus berhati-hati dengan indentasinya karena terdapat beberapa konstruksi if-else yang terlibat dalam proses ini, sehingga menjadi sulit untuk mengetahui konstruksi individualnya. Lekukan yang tepat memudahkan pembacaan program.

Pernyataan Else-if yang disarangkan

Else-if bersarang digunakan ketika keputusan multipath diperlukan.

Sintaks umum bagaimana tangga lain-jika dibangun dalam pemrograman 'C' adalah sebagai berikut:

 if (test - expression 1) {
    statement1;
} else if (test - expression 2) {
    Statement2;
} else if (test - expression 3) {
    Statement3;
} else if (test - expression n) {
    Statement n;
} else {
    default;
}
Statement x;

Jenis struktur ini dikenal sebagai tangga else-if. Rantai ini umumnya terlihat seperti tangga sehingga disebut juga tangga else-if. Ekspresi tes dievaluasi dari atas ke bawah. Setiap kali ekspresi pengujian yang benar ditemukan, pernyataan yang terkait dengannya dieksekusi. Ketika semua n ekspresi pengujian menjadi salah, maka pernyataan default else akan dieksekusi.

Mari kita lihat cara kerja sebenarnya dengan bantuan sebuah program.

#include<stdio.h>
int main()
{
	int marks=83;
	if(marks>75){
		printf("First class");
	}
	else if(marks>65){
		printf("Second class");
	}
	else if(marks>55){
		printf("Third class");
	}
	else{
		printf("Fourth class");
	}
	return 0;
}

Keluaran:

First class

Program di atas mencetak nilai sesuai nilai yang diperoleh dalam ujian. Kita telah menggunakan konstruksi tangga else-if pada program di atas.

Pernyataan Else-if Bersarang

  1. Kami telah menginisialisasi variabel dengan tanda. Pada struktur tangga else-if, kami telah menyediakan berbagai kondisi.
  2. Nilai dari tanda variabel akan dibandingkan dengan kondisi pertama karena benar pernyataan yang terkait dengannya akan dicetak pada layar keluaran.
  3. Apabila kondisi pengujian pertama ternyata salah, maka dibandingkan dengan kondisi pengujian kedua.
  4. Proses ini akan berjalan hingga semua ekspresi dievaluasi, jika tidak kontrol akan keluar dari tangga else-if, dan pernyataan default akan dicetak.

Coba ubah nilainya dan perhatikan perubahan pada outputnya.

Kesimpulan

  • Pernyataan pengambilan keputusan atau percabangan digunakan untuk memilih satu jalur berdasarkan hasil ekspresi yang dievaluasi.
  • Hal ini juga disebut sebagai pernyataan kontrol karena mengontrol aliran eksekusi suatu program.
  • 'C' menyediakan konstruksi if, if-else untuk pernyataan pengambilan keputusan.
  • Kita juga dapat menyarangkan if-else satu sama lain ketika beberapa jalur harus diuji.
  • Tangga else-if digunakan ketika kita harus memeriksa berbagai cara berdasarkan hasil ekspresi.