سلام علیکم
من امروز اومدم توی دستور switch متغیر تعریف کردم با مشکلی مواجه شدم روی متغیر new_postion خطا میده کد زیر را ببینید:
int position = 100; switch (position) { case 1: int new_position = 200; break; case 2: break; }
علتش چیه؟
باید هم خطا بده ، اسکوپ تعریف اون متغییر داخل case 1 هست ، case 1 تون هم که begin و end نداره ( {} ) پس یعنی فقط همون یک خط ، خب ؟ متغییر که تو یک خط فقط میخواد تعریف بشه و جای دیگه ای نمیشه ازش استفاده کرد به چه دردی میخوره ؟!
int position = 100; switch (position) { case 1: { int new_position = 200; } break; case 2: break; }
توی switch میشه متغیر تعریف کرد ولی نمیشه مقدار اولیه داد
به این شکل هم می تونی عمل کنی :
int a=1; switch(a) { case 1: int m; m=4; break; case 2: break; }