我有使用goto关键字编写的代码:
#include<stdio.h>
int main()
{
int i,j,k;
for(i=1;i<=3;i++)
{
for(j=1;j<=3;j++)
{
for(k=1;k<=3;k++)
{
[***if(i==2&&j==2&&k==2)
goto out;][1]
else
printf("%d %d %d\n ",i,j,k);***
}
}
}
out:
printf("\nOut of the loop");
return 0;
}
并且我尝试通过if语句和switch大小写不使用goto来编写它。但是我无法提供完美的逻辑。请有人帮助我。
#include<stdio.h>
int main()
{
int i,j,k;
for(i=1;i<=3;i++)
{
for(j=1;j<=3;j++)
{
for(k=1;k<=3;k++)
{
if(i>=2&&j>=2&&k>=2)
break;
else
printf("%d %d %d\n ",i,j,k);
}
**
**switch(i>=2&&j>=3&&k>=1)
{
case 1: break;
default : break;
}**
**
}
switch(i>=3&&j>=2&&k>=2)
{
case 1: break;
default : break;
}
}
return 0;
}
您可以在循环内更改控制变量
for (i = 0; i < 2; i++) {
for (j = 0; j < 4; j++) {
for (k = 0; k < 8; k++) {
if ((i == 2) && (j == 2) && (k == 2)) {
// change control variables to finish their loop
k = j = i = 9; break; // exit all loops
}
printf("%d, %d, %d\n", i, j, k);
}
}
}
您可以使用另一个变量,并使用它来“通知”循环应终止。
#include<stdio.h>
int main()
{
int i,j,k;
int run_me = 1;
for (i = 1; run_me && i <= 3; i++) {
for (j = 1; run_me && j <= 3; j++) {
for (k = 1; run_me && k <= 3; k++) {
if (i == 2 && j == 2 && k == 2) {
run_me = 0;
} else {
printf("%d %d %d\n ",i,j,k);***
}
}
}
}
printf("\nOut of the loop");
return 0;
}
您可以从循环中创建一个函数。
#include<stdio.h>
void function(void)
{
int i,j,k;
for (i = 1; i <= 3; i++) {
for (j = 1; j <= 3; j++) {
for (k = 1; k <= 3; k++) {
if (i == 2 && j == 2 && k == 2) {
return;
} else {
printf("%d %d %d\n ",i,j,k);***
}
}
}
}
}
int main()
{
function();
printf("\nOut of the loop");
return 0;
}