الدرس الثالث - if & switch & goto & comments

السلام عليكم ورحمة الله وبركاته :

سنتكلم اليوم عن الجملة الشرطية if و switch وسنتكلم ايضا عن goto و التعليقات Comments
لنرى الكود واشرح عليه ولا ترتعب من منظره فهو سهل جدا جدا جدا



#include <stdio.h> // printf , scanf

#include <sys/types.h> // _exit()

int main(){

    int age=0;

    char sure;

    printf("How are you age ?");

    scanf("%d",&age); //18
        if(age < 18) //19
            goto loop; //20 
        else if(age >= 18) //21
            goto loop1; //22
        else //23
             printf("Not number !"); //24
    loop: //25
        printf("Are you sure ?");
        scanf("%s",&sure);
        switch (sure) { //28
            case 'y': //29
                printf("Boy !
");    //30
            break; //31
            case 'n': //32
                printf("Try agin !
"); 
            break; //34
            default: //35
                printf("Not option !
");
    } //37
        _exit(0); //38
    loop1: //39
        printf("Are you sure ?");
        scanf("%s",&sure);
        switch (sure) {
            case 'y':
                printf("Adult !
");    
            break;
            case 'n':
                printf("Try agin !
");
            break;
            default:
                printf("Not option !
");
    }
        _exit(0); //52
    return 0; 
}

في السطر الأول تشاهد هذا بعد ضم ملف الرأسي

// printf , scanf

// : هذا نوع من أنواع التعليقات في البرنامج والتعليقات لا يراها المترجم
اوبالأحرى يتجاهلها ونحن نضعها لكي لا ننسى كبف تمت برمجة البرنامج أو وضع ملاحظة عليه وهكذا
وهي تستخدم لسطر واحد فقط أما /* /
/
*/ : هذه تستخدم لعدة اسطر مثلا



/* Name : G705T
   Age : 16
   I Love C Programming */


الأسطر السابقة لا يراها المترجم لأنه علم أنها تعليقات
لنرى الآن السطر 18 من البرنامج قرأنا متغير العمر من نوع عددي صحيح وفي سطر 19 تحققنا بدالة if
الشرطية اذا كان متغير العمر أصغر من 18 فسينفذ الجملة التي تليها وهي

   goto loop;

وفي سطر 21 اذا لم يتحقق شرط السابق وكان متغير العمر يساوي أو اكبر من 18 ينفذ

   goto loop1;

وإذا لم يتحقق الشرطان السابقان ينفذ في السطر 19

   printf("Not number !");

كما رأينا جملة if الشرطية تتحقق من امر ما وان تحقق تنفذ شي معين وان لم يتحقق تنفذ شي معين
وإذا كان جواب الشرط أكثر من سطر فيجب عليك إضافة قوسين لبدأ البلوك



if( name=="G705T"){
    printf("Hello G705T");
    printf("How R U ?");
    }


واذا لم يتحقق الشرط نكتب else



if( name=="G705T"){
    printf("Hello G705T");
    printf("How R U ?");
    }
    else{
        printf("Login Field");
        printf("Try Again");
        }

    إذا كنت تريد تحقق من شرط اذا لم ينفذ الشرط السابق

    if( name=="G705T"){
    printf("Hello G705T");
    printf("How R U ?");
    }
    else if(name=="G705T H4CK3r"){
        printf("Hello G705T H4CK3r")
        printf("How R U ?");
        }
    else{
        printf("Login Field");
        printf("Try Again");
        }

بظن أصبحت مفهومة الآن :wink:
نرجع للكود الأول جواب الشرط في السطر 19 كان

goto loop;

ماذا تعني goto 
ألقو نظرة إلى السطر 25 تجدون
loop:
في شرط قلت له انتقل لهذه ومن بعدها سيكمل الكود الذي كتبته وكذلك في شرط السطر 21 كان جواب الشرط
goto loop1;
أي أنه اذا تحقق الشرط سينتقل تنفيذ البرنامج إلى loop1
ولا تستخدموها كثيرا تدخلكم في متاهات عديدة خلينا نكمل الكود 
من بعد ما اتحقق الشرط وانتقلنا الى سطر 25من بعد الطباعة والقراءة تلاحظ جملة switch
هذه الجملة أيضا شرطية ولها درجة الأفضلية في الاستخدام أكثر من جملة if
إذا كان لديك شروط عديدة تود التحقق منها في متغير ما 
في سطر 28 عينا المتغير sure من نوع محرف
وفتحنا قوس البلوك ومن ثم كتبنا case 'y': في سطر 29
هنا قلنا اذا المتغير sure قيمته y نفذ التالي
ومن بعد التفيذ نكتب break لكي نوقف عمل switch لأن الشرط قد تحقق 
وبعد ذلك نتحقق في السطر 32 من اذا كان قيمة المتغير sure تساوي n
نفذ التالي وكتبنا break بعد الانتهاء من تنفيذ جواب الشرط 
من بعد كتابة جميع الشروط التي تريدها تكتب default:
وهذه تنفذ إذا المستخدم أدخل قيمة لم تنشا لها شرط ففي مثالنا هذا إذا أدخل المستخدم 
h مثلا بدل y او n فسيظهر له الكود الذي كتبته بعد default 
ولأننا استخدمنا goto وعدم تنفيذ بقية البرنامج من بعد الانتهاء من loop: 
وعدم الانتقال إلى loop1:
كتبنا في السطر 38
 _exit(0)

وهي تعني الخروح من البرنامج كله وهذا التابع ياتي من ملف االرأسي sys/types.h
لاحظو كيف ضممناه في برنامجنا في السطر الثاني
إلى هنا نكون قد انتهينا من شرح الكود وأي سؤال انا حاضر وان شاء الله يكون كل شي مفهوم بس المهم تركز منيح :wink:
ولا تنسى الدورات ما تعلمك يلي يعلمك محاولاتك وفشلك
ودمتم بخير

ملاحظة : بكرا ما ينزل درس مشان تركزو على اللي قلتو اليوم

السلام عليكم

مبدع , بارك الله فيك

في انتظار باقي دروس الدورة ^^ …

منور حبيب واي سؤال جاهز :wink:

السلام عليكم

بارك الله بك اخي الكريم

لاكن ما الخطا في هذا الكود ؟

#include <stdio.h>
  main() {
  if( name=="L3b") {
 printf("Hello L3b");
 }
}

تحياتي

#include <stdio.h>
#include <stdlib.h>

main() {
char name;//التعريف بلمتغير دوما
printf(“saisir la valeur de name:
“);//كتابة الأمر لي بين القوسين
scanf(”%s”,&name);//name<=receive caractere chaine(%s)
if(name=“L3B”)//هنا مش (==)عمل(=)
{
printf(“Hello L3B”);
}
return 0;

}

dddddddddمشكور على شروحات

ههههههههههههههههههههههه

بكير اخي عل رد ض1

سوالي كان من سنتين

ههههههههههه