CodeBlanks Logo Icon CodeBlanks

Mantıksal operatörler

  • C kursu
  • Başlangıç
  • Ders 27/116
  • 4 dk

&&, || ve ! ile boolean mantık kurmayı öğrenirsin.

Mantıksal operatörler

Üç mantıksal operatör vardır: && (VE), || (VEYA) ve ! (DEĞİL). Bunlar doğru/yanlış değerlerini birleştirir.

int a = 1, b = 0;
int r = a && b;  /* 0: ikisi de doğru değil */
int s = a || b;  /* 1: en az biri doğru */
int t = !b;      /* 1: b yanlış, tersi doğru */

Sonuç yine inttir: 1 (doğru) veya 0 (yanlış). Mantıksal operatörler if koşullarında sık kullanılır.

Kısa devre değerlendirme

&& ve || operatörleri kısa devre yapar. &&'de sol yanlışsa sağ tarafa bakılmaz; sonuç kesin yanlıştır. ||'de sol doğruysa sağ tarafa bakılmaz; sonuç kesin doğrudur.

int x = 0;
if (x != 0 && 10 / x > 1) { /* güvenli */ }

Bu davranış sıfıra bölme gibi tehlikeli durumları önlemek için kullanışlıdır. Sol koşul sağ tarafı korur.

Uygulama Mantıksal operatör sonuçlarını yazdır

int a = 5, b = 0; tanımla. Dört printf ile a && b, a || b, !b ve !a sonuçlarını ayrı satırlarda yazdır. Çıktı 0, 1, 1, 0 olmalı.

Başlangıç kodu

main.c
#include <stdio.h>

int main(void) {
    int a = 5, b = 0;
    /* a && b, a || b, !b, !a sonuçlarını yazdır */
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>

int main(void) {
    int a = 5, b = 0;
    printf("%d\n", a && b);
    printf("%d\n", a || b);
    printf("%d\n", !b);
    printf("%d\n", !a);
    return 0;
}

Beklenen çıktı

0
1
1
0

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Hangi ifade 1 (doğru) verir?

  • 1 && 0
  • 0 || 0
  • !1
  • 1 && 1 Doğru cevap

Açıklama: 1 && 1 her iki taraf da doğru olduğundan 1 verir.

2 Mantıksal operatörleri eşleştir

Kavram Anlamı
&& mantıksal VE
|| mantıksal VEYA
! değil
1 && 1 doğru

3 Mantıksal VE ile koşul

Soru
int a = 5, b = 3;
if (a > 0 ____ b > 0) { /* ikisi de pozitif */ }
Cevap
int a = 5, b = 3;
if (a > 0 && b > 0) { /* ikisi de pozitif */ }

Açıklama: && her iki tarafın da doğru olmasını ister.

Başlangıç bölümündeki tüm dersler