سؤال

int qempty()
{
    return (f == r ? 1 : 0);
}

في المقتطف أعلاه، ماذا "?"يعني؟ ماذا يمكننا استبدالها؟

هل كانت مفيدة؟

المحلول

يشار إليها عادة باسم المشغل الشرطي, ، وعند استخدامها مثل هذا:

condition ? result_if_true : result_if_false

... إذا كان condition يقيم إلى true, ، يعتبر التعبير ل result_if_true, ، وإلا فإنه يقيم result_if_false.

أنه التجميل اللغوى, وفي هذه الحالة، يمكن استبداله

int qempty()
{ 
  if(f == r)
  {
      return 1;
  } 
  else 
  {
      return 0;
  }
}

ملحوظة: بعض الناس يشيرون إلى ?: كما أنه "المشغل القصير"، نظرا لأن المشغل الثلاثي الوحيد (أي المشغل الذي يتطلب ثلاث حجج) باللغة التي يستخدمونها.

نصائح أخرى

هذا مشغل ثلاثي، إنه أمر أساسي في الأساس إذا كان البيان

x ? y : z

يعمل مثل

if(x) y else z

باستثناء، بدلا من العبارات لديك تعبيرات؛ حتى تتمكن من استخدامها في منتصف بيان أكثر تعقيدا.

من المفيد لكتابة رمز موجز، ولكن يمكن أن يكون مبالغا فيه لإنشاء الشفرة الصعبة.

يمكنك فقط إعادة كتابةها على النحو التالي:

int qempty(){ return(f==r);}

الذي يفعل نفس الشيء كما قال في الإجابات الأخرى.

ويسمى المشغل الشرطي.

يمكنك استبداله به:

int qempty(){ 
    if (f == r) return 1;
    else return 0;
}

إنه المشغل الشرطي.

أ ؟ ب: جيم

إنه اختصار إذا / ثم / آخر.

يعني: إذا كان الأمر صحيحا، عودة B، عودة أخرى ج. في هذه الحالة، إذا كانت f == R، ارجع 1، وإعادة الإخراج 0.

مجرد ملاحظة، إذا رأيت هذا:

a = x ? : y;

إنه امتداد جنو إلى المعيار (انظر https://gcc.gn.org/onlinedocs/gcc/conditionals.html#conditionals.).

هذا هو نفسه

a = x ? x : y;

علامة الاستفهام هي المشغل الشرطي. الرمز يعني أنه إذا تم إرجاع F == R ثم 1، وإلا، وإلا، إرجاع 0. يمكن إعادة كتابة التعليمات البرمجية

int qempty()
{
  if(f==r)
    return 1;
  else
    return 0;
}

والتي ربما لا تكون أنظف طريقة للقيام بذلك، ولكن نأمل أن تساعد تفهمك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top