واضح آرشیو وب فارسی:سایت ریسک: وظیفه default در ساختار switch ninjavb 09 آبان 1386, 16:56سلام من یه سوال دارم گزینه ی defult توی ساختار case چیکار میکنه؟ من یه جایی خوندم که اگه هیچکدوم از case ها اجرا نشد اون اجرا میشه ولی وقتی برنامه رو نوشتم دیدم که به هر صورت حالت defult اجرا میشه . saalek110 09 آبان 1386, 21:09با سلام. من کد زیر را امتحان کردم: #include <iostream.h> int main(void) { int number1; cout<<"enter a number"<<endl; cin>>number1; switch (number1) { case 1: cout<<"one"; break; case 2: cout<<"two"; break; case 3: cout<<"three"; break; default: cout<<"no_one"; } return 0; } درست بود. یعنی وقتی 1 می نوشتی one چاپ می شود و با نوشتن 2 کلمه two چاپ میشه و با نوشتن 3 عبارت three چاپ می شود و با نوشتن 4 کلمه no_one چاپ میشه. یعنی قسمت دیفالت وقتی اجرا می شود که شرط های case ها برقرار نباشد. می توان برنامه ای به این شکل نوشت: #include <iostream.h> int main(void) { int number1; cout<<"enter a number"<<endl; cin>>number1; switch (number1) { case 1: cout<<"one"; break; case 2: case 3: cout<<"two and three"; break; default: cout<<"no_one"; } return 0; } در این حال برای اعداد 2 و 3 عبارت two and three چاپ میشه. به عبارتی دستور break مثل دیوار مانع رفتن کنترل به قسمت بعدی می شود. من هم تا آنجایی که در آموزشها یادمه همین بوده یعنی دیفالت وقتی اجرا میشه که بقیه شرطها برقرار نباشند. emad_67 10 آبان 1386, 20:09سلام من یه سوال دارم گزینه ی defult توی ساختار case چیکار میکنه؟ من یه جایی خوندم که اگه هیچکدوم از case ها اجرا نشد اون اجرا میشه ولی وقتی برنامه رو نوشتم دیدم که به هر صورت حالت defult اجرا میشه . مشکل شما اینه که break رو انتهای case ها نزاشتی. به همین خاطر همیشه default اجرامیشه ninjavb 11 آبان 1386, 13:32این برنامه ای که شما نوشتید منم نوشتم درست شد ولی یه برنامه هست توی کتاب دایتل که مینویسم این طور نمیشه فکر کنم جای گذاشتن case هم مهم مثلا اگه یه کم عقب تر از بقیه نوشه بشه نتیجه فرق میکنه به هر حال ممنون از راهنمایی هاتون. saalek110 11 آبان 1386, 14:21زبان سی پلاس به فضای خالی حساس نیست. یعنی سمی کالن و بقیه علامت ها تعین می کند که کد کجا تمام میشه . شما می توانید تمام برنامه خود را در یک خط(پایین اصلاح شد به دو خط) بنویسید. جلو بردن و عقب بردن کدها فقط جهت افزایش خوانایی برای خود انسانهاست. و کامپایلر فضاهای خالی را در نظر نمی گیرد. تصحیح می کنم . در دو خط. در یک خط نوشتم خطا گرفت. انگار باید main اول خط باشد. #include <iostream.h> int main(void) { int number1; cout<<"enter a number"<<endl; cin>>number1; switch (number1) { case 1: cout<<"one"; break; case 2: cout<<"two"; break; case 3: cout<<"three"; break; default: cout<<"no_one"; } return 0; } ninjavb 12 آبان 1386, 13:08اره درست کار میکنه حتی با تغییر فاصله ها فکرکنم اشکال از یه جای دیگه بوده اخه این برنامه یه کم طولانی بود منم که مبتدیم ممنون از راهنماییهاتون
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 316]