c语言如何跳回前面的某一个点重新从那里开始运行?


【A】
for(i=1; i<=n; 【B】 i++)
{
a
.......
b
.......
c
}

当程序运行到b处时,我想跳回至【A】处,而不是【B】处,应该怎么做?
continue是回到【B】处吧?
break貌似跳出后就执行后面的程序了。。。。。

用goto语句。

#include<stdio.h>

void main()

{

    int a;

    begin: scanf("%d", &a);  // goto语句的标号begin

    if(a<0 || a>9)

        goto begin;   // 如果用户输入的数不在0~9之间,则重新输入

    eles   

        printf("%d\n", a); // 如果用户输入的数在0~9之间,则输出该数

}

扩展资料:

goto的基本语法

#include<stdio.h>

#include<stdlib.h

int  main()

{

    int i = 1;

    while(1)

    {

        printf("在while(1)里\n");

        while(i++)

        {

            printf("i = %d\n",i);

            if(i > 3)

            {

                goto TiaoChu;

            }

        }

    }

TiaoChu:

    printf("程序结束\n");

    return 0;

}

运行结果:

标号位置

在while(1)里

2

3

4

程序结束

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-22

C语言中goto关键字可以实现跳转执行的功能。


goto语句是一种无条件转移语句,其使用格式如下:

goto  语句标号;


举例说明如下:

#include<stdio.h>
void main()
{
    int a;
    begin: scanf("%d", &a);  // goto语句的标号begin
    if(a<0 || a>9)
        goto begin;   // 如果用户输入的数不在0~9之间,则重新输入
    eles   
        printf("%d\n", a); // 如果用户输入的数在0~9之间,则输出该数
}

第2个回答  推荐于2017-09-11
方法1: 用goto语句,虽然goto语句尽量避免用,但是这里用goto最简洁:

begin:

【A】
for(i=1; i<=n; 【B】 i++)
{
a
.......
b
goto begin;

.......
c
}

方法2: 借用循环语句。

int b = 0;
do{
【A】
/* if(b == 1) b = 0; */

for(i=1; i<=n; 【B】 i++)
{
a
.......
b
b = 1;
.......
c
}

}while(b!=0);

方法3: 用longjmp远程跳转。方法1和方法2只适用于函数内,方法3支持在不同函数之间跳转,但是代码会看起来更加难以理解,所以强烈不推荐!

#include <setjmp.h>
jmp_buf env;

setjmp(env);
for(i=1; i<=n; 【B】 i++)
{
a
.......
b
longjmp(env, 10);

.......
c
}本回答被提问者采纳
第3个回答  2012-10-20
“当程序运行到b处时,我想跳回至【A】处,而不是【B】处,应该怎么做”

b处是在一个for循环内,“continue是回到【B】处吧?”嗯,continue是跳出本次循环,即结束本次循环。
“break貌似跳出后就执行后面的程序了。。。。。”break语句是结束整个循环,当然这里说的是break语句所在的循环体,这里为for循环。
说说:goto 语句是跳出多层循环。。
跳回至【A】处,设置一个标号就行了,用goto语句就可以跳过去,但一般都不使用goto语句的,不利于程序的规程。
【A】处,不知道,你具体想干什么,但是你可以写个函数实现某种功能,在b处调用他就行了嘛!本回答被网友采纳
第4个回答  2012-10-20
goto语句吧

#include"stdio.h"
int main(void)
{
int n=0;
printf("input a string :\n");
loop: if(getchar()!='\n')
{
n++;
goto loop;
}
printf("%d",n);
}
例如输入:ahifhoaishfoasdfkasg
然后回车Enter
输出:20

大概就是这样 中间的是我在百度上找到的
相似回答