如何在不使用goto关键字的情况下编写C代码?
我使用goto关键字编写了以下代码:如何在不使用goto关键字的情况下编写C代码?,c,for-loop,if-statement,logic,goto,C,For Loop,If Statement,Logic,Goto,我使用goto关键字编写了以下代码: #包括 int main() { int i,j,k; 对于(i=1;i,您可以在循环内更改控制变量 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)) {
#包括
int main()
{
int i,j,k;
对于(i=1;i,您可以在循环内更改控制变量
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);
}
}
}
(i=0;i<2;i++)的{
对于(j=0;j<4;j++){
对于(k=0;k<8;k++){
如果((i==2)和&(j==2)和&(k==2)){
//更改控制变量以完成其循环
k=j=i=9;中断;//退出所有循环
}
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;
}
#包括
int main()
{
int i,j,k;
int run_me=1;
对于(i=1;run_me&&我不在代码段中添加格式。在您想指出的行上添加注释,如果您需要更多地说明这些行,请在问题中为这些行添加解释。至于打破多级嵌套循环,首先,请尽可能避免嵌套循环,这样您就不会有这个问题。例如例如,您可以使用包含循环的函数,并检查函数返回值。否则,请使用额外的状态变量,如果
检查外部循环,则使用。防止转到的第一个规则是重新构造代码。然后,在C中允许转到的情况有两种:中断内部循环和进行错误处理。这两种情况都需要大量的状态变量和其他人工变量(不可读,占用处理器周期)用于防止跳转的构造。你介意我修复缩进吗?我的眼睛受伤了!这可以被认为是一种黑客行为,并且不是通用的,循环可以不是for
循环,而是while
循环。然后你必须编写一条语句,使所有循环都失败,这通常是不可能的。
#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;
}