Co się łamie; zrobić w poniższy kod? Zasadniczo muszę wyjść z wewnętrznej pętli, ale kontynuować zewnętrzną pętlę
for(i=0;i<n;i++)
{
for(j=i;j<n;j++)
{
if(condition)
{
count++;
break;
}
}
}
Odpowiedzi:
4 dla odpowiedzi № 1The break
w twoim kodzie wyrwie się z pętli wewnętrznej. Następnie zewnętrzna pętla będzie kontynuowana (jeśli warunek w niej jest prawdziwy), tak jak chcesz. Zauważ, że break
nie ma wpływu na if
s. Wyrwie się z pętli jak for
,while
itd. i kiedy jest umieszczony w pętlach zagnieżdżonych, jak ten, który masz, wyrwie się tylko z wewnętrznej pętli.
0 dla odpowiedzi nr 2
Jak tylko program trafi do przerwa komunikat. To wychodzi z wnętrza dla pętli i controll sięgają do końca wewnętrzna pętla
Oto przykład
for(i=0;i<3;i++)
{
for(j=1;j<3;j++)
{
if(i == j)
{
break;
}
printf("Inside the inner for loop t i is : %d t j is %d n",i,j);
}
printf("Outside of the for loop t i is : %d t j is %d n",i,j);
}
Wynik to:
Inside the inner for loop i is : 0 j is 1
Inside the inner for loop i is : 0 j is 2
Outside of the for loop i is : 0 j is 3
Outside of the for loop i is : 1 j is 1
Inside the inner for loop i is : 2 j is 1
Outside of the for loop i is : 2 j is 2