PDA

View Full Version : سوال: No such label 'Label0' within the scope of the goto statement



Sal_64
چهارشنبه 26 تیر 1392, 11:49 صبح
سلام

این کد خطای زیر میده




switch (value)
{
case 1:
{
x=25;
break;
}
case 2:
{
Label0:
x=110;
break;
}
case 3:
{
x=15;
break;
}
default:
{
switch (value)
{
case 10:
{
x=11;
break;
}
case 11:
{
x=95;
break;
}
default:
{
goto Label0;
}
}
break;
}
}



No such label 'Label0' within the scope of the goto statement متن خطا مشخصه ، اما کد نباید زیاد تغییر کنه
بهترین شیوه برای اصلاحش چیه؟
تشکر

Sal_64
چهارشنبه 26 تیر 1392, 17:08 عصر
مشتاقانه منتظر پاسخ دوستان هستم

Sal_64
چهارشنبه 26 تیر 1392, 17:59 عصر
دوستان قضیه این default: میدونید چی؟ چیکار میکنه؟

تشکر

llMMDll
چهارشنبه 26 تیر 1392, 18:20 عصر
قسمت defualt هم هر دستوری که داخلش بنویسید در صورتی که case های شما در مقایسه برابری نیافتند اجرا می شود.

Sal_64
چهارشنبه 26 تیر 1392, 18:25 عصر
قسمت defualt هم هر دستوری که داخلش بنویسید در صورتی که case های شما در مقایسه برابری نیافتند اجرا می شود.

با این تفاسیر پس اولین defualt ، بیخودی نوشه شده، درسته؟

llMMDll
چهارشنبه 26 تیر 1392, 18:33 عصر
اینکه این کد برای چه هدفی نوشته شده نا مشخصه
فکر می کنم به این صورت هم درست بشه :



switch (value)
{
case 1:
{
x = 25;
break;
}
case 2:
{
x = 110;
break;
}
case 3:
{
x = 15;
break;
}
case 10:
{
x = 11;
break;
}
case 11:
{
x = 95;
break;
}
default:
{
goto case 2;
}
}

Sal_64
چهارشنبه 26 تیر 1392, 21:52 عصر
مجددا تشکر:تشویق:

با کیسهای 30 و 31 چه کنم؟

دلیل تعریف کیس 2 چیه ! اون که چیزی نداره؟



switch (num1)
{
case 0:
{

}
case 1:
{

goto case 4;
}
case 2:
case 4:
{


}
case 3:
{
switch (value1)
{
case 30:
{

goto case 4;
}
case 31:
{

goto case 4;
}

default:
{
goto case 4;
}
}
break;
}
}

llMMDll
چهارشنبه 26 تیر 1392, 23:21 عصر
در مورد case 2 اگر بخواهیم چند case یک کار را انجام بدهند اینطور نوشته می شود.

Sal_64
پنج شنبه 27 تیر 1392, 07:56 صبح
در مورد case 2 اگر بخواهیم چند case یک کار را انجام بدهند اینطور نوشته می شود.
تشکر
به نظرت کیس های 30 و 31 چه شکلی باید تغییر داد؟

Sal_64
پنج شنبه 27 تیر 1392, 09:02 صبح
اینهم یک مورد دیگه


switch (x)
{
case 11:
{

switch (value)
{
case 1:
{
goto label0;
break;
}
case 2:
{

break;
}
default:
{

break;
}
}
break;

}
default:
{
goto Label0;
}
}

Label6:
//
return;
Label0:
//
goto Label6;
}

؟؟

Sal_64
پنج شنبه 27 تیر 1392, 10:16 صبح
اگر داخل تابع حاوی switch/case ، دستور goto Label0 وجود داشته باشه اما خبری از Label0 نباشه ، تکلیف چیه؟
تشکر

Sal_64
شنبه 29 تیر 1392, 11:20 صبح
مجددا تشکر:تشویق:

با کیسهای 30 و 31 چه کنم؟




switch (num1)
{
case 0:
{

}
case 1:
{

goto case 4;
}
case 2:
case 4:
{


}
case 3:
{
switch (value1)
{
case 30:
{

goto case 4;
}
case 31:
{

goto case 4;
}

default:
{
goto case 4;
}
}
break;
}
}

پاسخ : به این طریق دیگه خطا نداد



switch (num1)
{
case 0:
{

}
case 1:
{

goto case 4;
}
case 2:
case 4: Label10:
{


}
case 3:
{
switch (value1)
{
case 30:
{

goto Label10;
}
case 31:
{

goto Label10;
}

default:
{
goto Label10;
}
}
break;
}

Sal_64
شنبه 29 تیر 1392, 11:20 صبح
اگر داخل تابع حاوی switch/case ، دستور goto Label0 وجود داشته باشه اما خبری از Label0 نباشه ، تکلیف چیه؟
تشکر

پاسخ : (احتمالا) نقش Break و یا return بازی میکنه

Sal_64
شنبه 29 تیر 1392, 11:21 صبح
اینهم یک مورد دیگه


switch (x)
{
case 11:
{

switch (value)
{
case 1:
{
goto label0;
break;
}
case 2:
{

break;
}
default:
{

break;
}
}
break;

}
default:
{
goto Label0;
}
}

Label6:
//
return;
Label0:
//
goto Label6;
}

؟؟

واسه این هنوز به جوابی نرسیدم ، احتمالا باید ساختار کد تغییر داد و goto ها حذف کرد