نفی بلد

نفی بلد: صفر تا صد یادگیری نفی در برنامه نویسی

نفی یکی از مفاهیم پایه ای در برنامه نویسیه که با استفاده از عملگر “!” (نه) انجام میشه. این عملگر مقدار Boolean (درست یا غلط) را معکوس می کنه. به عبارت ساده تر اگه شرط درست باشه نفی آن غلط و اگه شرط غلط باشه نفی آن درست خواهد بود.

نفی در زبان های برنامه نویسی مختلف کاربرد گسترده ای داره و در ساختار کنترل شرطی (if-else) و حلقه ها (loops) نقش مهمی ایفا میکنه.

در این مقاله به طور مرحله به مرحله با نفی در برنامه نویسی آشنا می شیم و به طور جذاب و قابل فهم برای افراد مبتدی این مفهوم رو شرح میدیم.

نفی در زبان C++

نفی در C++ با عملگر “!” انجام میشه. این عملگر یک عملگر unary هست که روی یک operand عمل میکنه.

#include <iostream>

int main() {
  bool isTrue = true;
  bool isFalse = false;

  std::cout << "isTrue: " << isTrue << std::endl;
  std::cout << "isFalse: " << isFalse << std::endl;

  std::cout << "!isTrue: " << !isTrue << std::endl; // False
  std::cout << "!isFalse: " << !isFalse << std::endl; // True

  return 0;
}

کاربرد نفی در C++

نفی در C++ در ساختار کنترل شرطی (if-else) و حلقه ها (loops) نقش مهمی ایفا میکنه.

مثال 1: ساختار شرطی (if-else)

#include <iostream>

int main() {
  int age = 15;

  if (! (age >= 18)) { // شرط: سن کمتر از 18 سال باشد
    std::cout << "شما اجازه رانندگی ندارید." << std::endl;
  } else {
    std::cout << "شما اجازه رانندگی دارید." << std::endl;
  }

  return 0;
}

در این مثال شرط “age >= 18” نفی میشه. اگه سن کمتر از 18 سال باشد شرط نفی شده (age >= 18) غلط خواهد بود.

مثال 2: حلقه (loop)

#include <iostream>

int main() {
  int i = 1;

  while (! (i > 5)) { // شرط: i  بزرگتر از 5  نباشد
    std::cout << i << " ";
    i++;
  }

  std::cout << std::endl;
  return 0;
}

در این مثال شرط “i > 5” نفی میشه. تا زمانی که i بزرگتر از 5 نباشد شرط نفی شده (i > 5) غلط خواهد بود و حلقه اجرا میشه.

نفی در زبان Python

نفی در Python با عملگر “not” انجام میشه. این عملگر یک عملگر unary هست که روی یک operand عمل میکنه.

isTrue = True
isFalse = False

print("isTrue:", isTrue)
print("isFalse:", isFalse)

print("not isTrue:", not isTrue) # False
print("not isFalse:", not isFalse) # True

کاربرد نفی در Python

نفی در Python در ساختار کنترل شرطی (if-else) و حلقه ها (loops) نقش مهمی ایفا میکنه.

مثال 1: ساختار شرطی (if-else)

age = 15

if not (age >= 18): # شرط: سن کمتر از 18 سال باشد
  print("شما اجازه رانندگی ندارید.")
else:
  print("شما اجازه رانندگی دارید.")

در این مثال شرط “age >= 18” نفی میشه. اگه سن کمتر از 18 سال باشد شرط نفی شده (age >= 18) غلط خواهد بود.

مثال 2: حلقه (loop)

i = 1

while not (i > 5): # شرط: i  بزرگتر از 5  نباشد
  print(i, end=" ")
  i += 1

print()

در این مثال شرط “i > 5” نفی میشه. تا زمانی که i بزرگتر از 5 نباشد شرط نفی شده (i > 5) غلط خواهد بود و حلقه اجرا میشه.

نفی در زبان JavaScript

نفی در JavaScript با عملگر “!” انجام میشه. این عملگر یک عملگر unary هست که روی یک operand عمل میکنه.

const isTrue = true;
const isFalse = false;

console.log("isTrue:", isTrue);
console.log("isFalse:", isFalse);

console.log("!isTrue:", !isTrue); // False
console.log("!isFalse:", !isFalse); // True

کاربرد نفی در JavaScript

نفی در JavaScript در ساختار کنترل شرطی (if-else) و حلقه ها (loops) نقش مهمی ایفا میکنه.

مثال 1: ساختار شرطی (if-else)

const age = 15;

if (! (age >= 18)) { // شرط: سن کمتر از 18 سال باشد
  console.log("شما اجازه رانندگی ندارید.");
} else {
  console.log("شما اجازه رانندگی دارید.");
}

در این مثال شرط “age >= 18” نفی میشه. اگه سن کمتر از 18 سال باشد شرط نفی شده (age >= 18) غلط خواهد بود.

مثال 2: حلقه (loop)

let i = 1;

while (! (i > 5)) { // شرط: i  بزرگتر از 5  نباشد
  console.log(i, " ");
  i++;
}

console.log();

در این مثال شرط “i > 5” نفی میشه. تا زمانی که i بزرگتر از 5 نباشد شرط نفی شده (i > 5) غلط خواهد بود و حلقه اجرا میشه.

خلاصه نفی در زبان های برنامه نویسی

زبان برنامه نویسی عملگر نفی
C++ !
Python not
JavaScript !

مقایسه نفی با عملگر && (و) و || (یا)

عملگر “&&” (و) فقط زمانی درست هست که هر دو operand درست باشند.

عملگر “||” (یا) فقط زمانی غلط هست که هر دو operand غلط باشند.

عملگر “!” (نه) مقدار Boolean را معکوس میکنه.

نکات مهم در مورد نفی

  • نفی می تواند در داخل شرط های پیچیده استفاده شود تا منطق کد را به طور موثر تغییر دهد.
  • نفی می تواند برای ساده سازی شرط ها و بهبود خوانایی کد استفاده شود.
  • درست استفاده کردن از نفی می تواند به بهبود کارایی کد منجر شود.

نتیجه گیری

نفی یک مفهوم بسیار مهم در برنامه نویسی هست که در ساختار کنترل شرطی و حلقه ها نقش مهمی ایفا میکنه. با درک نفی می تونیم کد های قوی تر و کارآمدتر بنویسیم.

پرسش و پاسخ

1. آیا نفی فقط روی متغیرهای boolean عمل میکنه؟

خیر. نفی می تونه روی هر نوع داده ای که به صورت Boolean قابل تفسیر باشه عمل میکنه. مثلا:

  • 0 به عنوان غلط و هر عدد دیگری به عنوان درست تفسیر میشه.
  • رشته خالی به عنوان غلط و هر رشته دیگری به عنوان درست تفسیر میشه.

2. آیا نفی روی عملگرهای && (و) و || (یا) هم عمل میکنه؟

بله. نفی می تونه روی عملگرهای && (و) و || (یا) هم عمل میکنه. مثلا:

bool result = ! (condition1 && condition2); 

در این مثال نفی روی نتیجه عملگر && عمل میکنه. اگه هر دو condition1 و condition2 درست باشند نتیجه && درست و نتیجه نفی (result) غلط خواهد بود.

3. در چه مواردی استفاده از نفی بهتر از استفاده مستقیم از شرط هست؟

در بعضی مواقع استفاده از نفی ممکن هست که خوانایی کد را بهبود دهد و شرط را ساده تر میکند. به عنوان مثال اگه شرط بسیار پیچیده باشه و نفی آن ساده تر باشه استفاده از نفی می تونه بهتر باشه. همچنین در بعضی مواقع استفاده از نفی می تونه کارایی کد را بهبود دهد.