با سلام.می خواستم بدونم در دستور switch می شه داخل عبارت case از کلمه استفاده کرد و اینکه اگر بخوایم بیشتر از یک دستور در case اجرا بشه نیاز به آکولاد هست..؟؟؟
منظورم از قسمت اول سوالم این بود.
case('add')
درسته یا ایراد داره..؟؟
با سلام.می خواستم بدونم در دستور switch می شه داخل عبارت case از کلمه استفاده کرد و اینکه اگر بخوایم بیشتر از یک دستور در case اجرا بشه نیاز به آکولاد هست..؟؟؟
منظورم از قسمت اول سوالم این بود.
case('add')
درسته یا ایراد داره..؟؟
سلام.
امتحان کردم درسته ولی رشته ی متنی نیست. چیزی که نوشتید یک عدده! ینی مثلا وقتی مینویسیم 'ali' یعنی عدد 6384745 که به هزادسیمال میشه 0x00616C69 که 0x61 برای کاراکتر 'a' و 0x6C برای کاراکتر 'l' و 0x69 برای کاراکتر 'i' هست.
ممنون ولی وقتی من می زنم کامپایلر ایراد می گیره البته تعداد case ها زیاده بعد عبارات توش هم طولانی.در مرد سوال دومم چی..؟؟
اگه منظورتون اینه که بجای عدد از کلمه یا حرف استفاده کنید به صورت زیر هستش.
string a;
switch (a.at(7)) {
case '1':
cout << "It pressed number 1" << endl;
break;
case '2':
cout << "It pressed number 2" << endl;
break;
case '3':
cout << "It pressed number 3" << endl;
break;
default:
cout << "She put no choice" << endl;
break;
.:.We speak a universal language that brings us together.:.
=======================================
انجمنهای برنامهنویسی مدرن ایران
آموزشهای سیپلاسپلاس و Qt و دیگر کتابخانهها
کانال یوتیوب من | کانال آپارات من
کانال تلگرامی من | گروه تلگرامی ++C
در مورد سوال دومتون ٬ شما تا قبل از کلمه ی Break هر چقدر که مورد استفادتونه می تونید دستور بنویسید.
Case 1:
Sum=x+y;
cout<<Sum;
....
Break;
اما در مورد سوال اولتون منم میخوام بدونم که چطوری امکان پذیره ؟
نوع داخل Switch باید از چه نوعی باشه ؟ Char و String و ...
اگر ممکنه یه نمونه کامل مثال بزنید که با دادن یک کلمه ( نه یک کارکتر) بشه کیس های سوییچ رو فرخوانی کرد.
در مورد سوال دوم امتحان کردم اکولاد نگذارید هم تا رسیدن به break تمام دستورات اجرا میشن.
در مورد عبارت متنی هم من نتونستم بیشتر از 4 کاراکتر بگذارم. یعنی 32 بیت! 4 بایت. هر کاراکتری 1 بایت رو پر کنه یک int دارید. بیشتر از اون رو خطا میگرفت!
آخرین ویرایش به وسیله Ananas : دوشنبه 19 اسفند 1392 در 23:43 عصر
// for int
int i;
cin>>i;
switch(i)
{
case 0:
cout<<"you enter 0\n";
break;
case 1:
cout<<"you enter 1\n";
break;
default:
cout<<"please enter 0 or 1!\n";
}
// for char
char ch;
cin>>ch;
switch(ch)
{
case 'a':
case 'A':
cout<<"you enter a or A\n";
break;
case 'b':
case 'B':
cout<<"you enter b or B\n";
break;
default:
cout<<"what?\n";
}
// for string
string str;
getline(cin,str);
switch(str)
{
case "ali":
cout<<"you enter ali";
break;
case "asd123":
cout<<"you enter asd123";
break;
default:
cout<<"what?";
}
اینها رو اضافه کردی آیا؟
#include <iostream>
#include <string>
using namespace std;
در ضمن به جای:
case "ali":
این رو:
case string("ali"):
بنویس و باقی رشته های جلوی case رو همچنین. چون وقتی ننویسی فکر می کنه char star (آرایه کاراکتری: همون رشته سبک c ) هست و (شاید چون امتحان نکردم) احتمالا ارور از اینجا باشه.
.
آهان یه چیز دیگه اگه دقت کنی قبل از getline یه cin هست. بعد از cin یه:
cin.get();
بنویس تا اینتری که زدی که داده بره توی char وارد getline نشه. (وارد cin.get بشه.)
.
با توجه به پست اول شما در این تاپیک پیشنهاد میدم مقدمات سی پلاس پلاس رو فرا بگیرید و بعد به سراغ ساختار های زبان بروید. این کتاب رو بخونید. (از اول)
آخرین ویرایش به وسیله asdasd123123 : شنبه 05 بهمن 1392 در 09:29 صبح
سلام
در مورد سویچ برای داده های قابل شمارش از جمله اعداد لطفا راهنمایی کنید
چرا در سی شارپ نمیشود ازCase(0-9)استفاده نمود
سلام
اگه می خواهید از 0 تا 9 یه جور باشه به این شکل بذارید:
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
printf("case:0-9");
case 10:
printf("case 10");
در ضما اینجا تالار سی و سی پلاس پلاسه . سی شارپ جای دیگه هست
سلام.باید از سازنده ی این زبان بپرسید!همین عبارتی رو که شما درج کرده اید(case) وظیفش اینه که اون متغیری که درون برانتز سوییچ قرار داده شده است حالت های مختلفی رو برای مقدار اون متغیر داخل پرانتز سوییچ تعریف میکنه.کار سوییچ اینه:اون متغیری رو که قبلا تعریف کرده بودید رو در داخل پرانتز مد نظر می گیره.بعد از اون با عبارات case شرط می ذاره که اگه مثلا حرف A رو وارد کردید توسط دستور cin ای که قبلا به برنامه داده بودید تو cout زیر case عبارتی رو که مد نظرتونه نمایش بده . همین طور برای case های بعدی و کاراکتر های مختلفی که می خواهید توسط cin وارد کنید و به ازای زدن کاراکتر هاتون همانگونه که در case و cout مربوطه براش تعریف کردید همون رو براتون نمایش می ده .پس یک عبارت case شما باید اشاره به یک حالت و مورد بکند و نه از 1 تا 9 مورد.