تا %60 تخفیف خرید برای 6 نفر با صدور مدرک فقط تا
00 00 00
در توسینسو تدریس کنید

آموزش برنامه نویسی C قسمت 24 : Switch Case Statement

سلام و وقت بخیر. در این جلسه درمورد ساختار switch case صحبت میکنیم. به switch case میتوان به عنوان یک if else گسترده تر نگاه کرد. با switch case میتوان یک متغیر را گرفت و برای حالت های مختلف مقدار آن تصمیم گیری های مختلفی انجام داد. اگر بخواهیم همین کار را با if انجام دهیم، به ازای تک تک مقادیری که متغیرمان میگیرد باید یک if بنویسیم. به ساختار زیر دقت کنید.

آموزش برنامه نویسی C  قسمت 24 : Switch Case Statement

همانطور که در شکل مشخص است، یک ورودی وارد تابع شده و مقدار آن با هر کدام از موارد ( case ) برابر باشد، کد های همان case اجرا میشود. به مثال ساده زیر دقت کنید.

#include <stdio.h>

int main()
{
	printf( "Enter your grade: " );
	char Grade ;
	scanf( "%c" , &Grade );

     switch( Grade )
     {
        case 'A' : printf( "Excellent\n" );
                   break;
        case 'B' : printf( "Good\n" );
                   break;
        case 'C' : printf( "OK\n" );
                   break;
        case 'D' : printf( "Mmmmm....\n" );
                   break;
        case 'F' : printf( "You must do better than this\n" );
                   break;
        default  : printf( "What is your grade anyway?\n" );
                   break;
     }
return 0;
}

خروجی کد :

[root@CentOS6 c]# gcc -o switch switch.c
[root@CentOS6 c]# ./switch 
Enter your grade: A
Excellent
[root@CentOS6 c]# ./switch 
Enter your grade: B
Good
[root@CentOS6 c]# ./switch 
Enter your grade: C
OK
[root@CentOS6 c]# ./switch 
Enter your grade: bla blla
What is your grade anyway?
[root@CentOS6 c]# 

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

#include <stdio.h>

int main()
{
	printf("Enter your grade: ");
	char Grade;
	scanf("%c",&Grade);

     switch( Grade )
     {
        case 'A' : 
	    case 'a' : printf( "Excellent\n" );
                   break;
		
        case 'B' :
       	case 'b' : printf( "Good\n" );
                   break;

        case 'C' :
        case 'c' : printf( "OK\n" );
                   break;

        case 'D' :
        case 'd' : printf( "Mmmmm....\n" );
                   break;
        case 'F' : 
	     case 'f' : printf( "You must do better than this\n" );
                   break;
		
        default  : printf( "What is your grade anyway?\n" );
                   break;
     }
return 0;
}

مثال : با استفاده از ساختار switch case یک ماشین حساب ساده بسازید.

# include <stdio.h>

int main() {

    char operator;
    double firstNumber,secondNumber;

	printf("Enter first operands: ");
    	scanf("%lf",&firstNumber);
	
    	printf("Enter an operator (+, -, *,): ");
    	scanf("%s", &operator);
		
	printf("Enter second operands: ");
    	scanf("%lf",&secondNumber);

    switch(operator)
    {
        case '+':
            printf("%.1lf + %.1lf = %.1lf\n",firstNumber, secondNumber, firstNumber+secondNumber);
            break;

        case '-':
            printf("%.1lf - %.1lf = %.1lf\n",firstNumber, secondNumber, firstNumber-secondNumber);
            break;

        case '*':
            printf("%.1lf * %.1lf = %.1lf\n",firstNumber, secondNumber, firstNumber*secondNumber);
            break;

        case '/':
            printf("%.1lf / %.1lf = %.1lf\n",firstNumber, secondNumber, firstNumber/firstNumber);
            break;

        // operator is doesn't match any case constant (+, -, *, /)
        default:
            printf("Error! operator is not correct\n");
    }
    return 0;
}

تمرین : با استفاده از while برنامه بالا را طوری تغییر دهید که پس از محاسبه عملیات، از برنامه خارج نشود و بتوان چندین عملیات را با یک بار اجرای برنامه انجام داد. سپس با فشردن دکمه خاصی از برنامه خارج شود.

پایان قسمت بیست و چهارم

نویسنده : سید محمد باقر موسوی

منبع : جزیره برنامه نویسی وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است

نظر شما
برای ارسال نظر باید وارد شوید.
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

افرادی که این مطلب را خواندند مطالب زیر را هم خوانده اند