Operator Ternary di C Dijelaskan

Pengaturcara menggunakan pengendali ternary untuk membuat keputusan sebagai ganti pernyataan bersyarat yang lebih lama jika dan lain - lain .

Pengendali ternary mengambil tiga hujah:

  1. Yang pertama adalah hujah perbandingan
  2. Yang kedua adalah hasil dari perbandingan yang benar
  3. Yang ketiga adalah hasil dari perbandingan yang salah

Ia berguna untuk menganggap pengendali ternary sebagai cara ringkas atau menulis pernyataan if-else. Berikut adalah contoh membuat keputusan yang mudah menggunakan jika dan yang lain :

int a = 10, b = 20, c; if (a < b) { c = a; } else { c = b; } printf("%d", c);

Contoh ini memerlukan lebih daripada 10 baris, tetapi itu tidak perlu. Anda boleh menulis program di atas hanya dalam 3 baris kod menggunakan operator ternary.

Sintaks

condition ? value_if_true : value_if_false

Pernyataan tersebut menilai value_if_trueapakah conditiondipenuhi, dan value_if_falsesebaliknya.

Inilah contoh di atas yang ditulis semula untuk menggunakan pengendali ternary:

int a = 10, b = 20, c; c = (a < b) ? a : b; printf("%d", c);

Hasil daripada contoh di atas mestilah:

10

cditetapkan sama dengan a, kerana syarat a < bitu benar.

Ingatlah bahawa hujah value_if_truedan value_if_falsemesti sama jenisnya, dan itu mestilah ungkapan sederhana dan bukannya pernyataan penuh.

Pengendali tinggi boleh disarang seperti pernyataan if-else. Pertimbangkan kod berikut:

int a = 1, b = 2, ans; if (a == 1) { if (b == 2) { ans = 3; } else { ans = 5; } } else { ans = 0; } printf ("%d\n", ans);

Inilah kod di atas yang ditulis semula menggunakan operator ternary bersarang:

int a = 1, b = 2, ans; ans = (a == 1 ? (b == 2 ? 3 : 5) : 0); printf ("%d\n", ans);

Keluaran kedua set kod di atas mestilah:

3