Pengaturcara menggunakan pengendali ternary untuk membuat keputusan sebagai ganti pernyataan bersyarat yang lebih lama jika dan lain - lain .
Pengendali ternary mengambil tiga hujah:
- Yang pertama adalah hujah perbandingan
- Yang kedua adalah hasil dari perbandingan yang benar
- 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_true
apakah condition
dipenuhi, dan value_if_false
sebaliknya.
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
c
ditetapkan sama dengan a
, kerana syarat a < b
itu benar.
Ingatlah bahawa hujah value_if_true
dan value_if_false
mesti 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