如何在不使用 goto 关键字的情况下编写 C 代码?
How do i write C code without using a goto keyword?
我使用 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 case 的帮助下不使用 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);
}
}
}
您可以使用另一个变量并将其用于 "notify" 它们应该结束的循环。
#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;
}
我使用 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 case 的帮助下不使用 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);
}
}
}
您可以使用另一个变量并将其用于 "notify" 它们应该结束的循环。
#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;
}