goto Deyimi (C++)
deyimi, goto
denetimi koşulsuz olarak belirtilen tanımlayıcı tarafından etiketlenen deyime aktarır.
Sözdizimi
goto identifier;
Açıklamalar
tarafından identifier
belirlenen etiketli deyimin geçerli işlevde olması gerekir. Tüm identifier
adlar bir iç ad alanının üyeleridir ve bu nedenle diğer tanımlayıcıları engellemez.
Deyim etiketi yalnızca bir goto
deyim için anlamlıdır; aksi takdirde deyim etiketleri yoksayılır. Etiketler yeniden işlenemez.
Bir goto
deyiminin denetimi, bu konumdaki kapsamdaki herhangi bir değişkenin başlatılmasını atlayan bir konuma aktarmasına izin verilmez. Aşağıdaki örnek C2362'yi yükseltir:
int goto_fn(bool b)
{
if (!b)
{
goto exit; // C2362
}
else
{ /*...*/ }
int error_code = 42;
exit:
return error_code;
}
Mümkün olduğunda deyimi yerine goto
, continue
ve return
deyimlerini kullanmak break
iyi bir programlama stilidir. Ancak, deyimi bir döngünün break
yalnızca bir düzeyinden çıktığı için, derin iç içe döngüden çıkmak için bir goto
deyimi kullanmanız gerekebilir.
Etiketler ve goto
deyim hakkında daha fazla bilgi için bkz . Etiketli Deyimler.
Örnek
Bu örnekte, bir goto
deyim denetimi 3'e eşit olduğunda i
etiketlenmiş stop
noktaya aktarır.
// goto_statement.cpp
#include <stdio.h>
int main()
{
int i, j;
for ( i = 0; i < 10; i++ )
{
printf_s( "Outer loop executing. i = %d\n", i );
for ( j = 0; j < 2; j++ )
{
printf_s( " Inner loop executing. j = %d\n", j );
if ( i == 3 )
goto stop;
}
}
// This message does not print:
printf_s( "Loop exited. i = %d\n", i );
stop:
printf_s( "Jumped to stop. i = %d\n", i );
}
Outer loop executing. i = 0
Inner loop executing. j = 0
Inner loop executing. j = 1
Outer loop executing. i = 1
Inner loop executing. j = 0
Inner loop executing. j = 1
Outer loop executing. i = 2
Inner loop executing. j = 0
Inner loop executing. j = 1
Outer loop executing. i = 3
Inner loop executing. j = 0
Jumped to stop. i = 3
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin