c语言入门:[13]循环语句介绍goto

2025-10-23 03:20:42

让计算机打印输出50个星号

以我们现在的知识,第一种方法我们可以

printf("**************************************************");

第二中方法我们可以

printf("*");

printf("*");

......重复50次

我们看起来第一种方式简单一些,但如果是500000个星号呢?

第二种方法就是重复地执行printf("*");这行代码,如果我们学会了让让程序重复执行的命令那就简单多了,这节要学习的goto语句就是做这个用的,请看下面的代码:

int main()

{

    printf("一个循环语句的例子\n");

    mark:printf("*");

    goto mark;

    printf("hello\n");

}

我们在printf("*);这句的前面做了一个标记,给一句c代码做标记的方法是标记名加冒号的形式,标记名你可以随便起但要符合"字母数字下划线组成不能以数字开头"的规则,例如这里我就起了个mark作为标记名。

goto这个关键字你可以理解成跳转到的意思,那么程序的第三行goto mark;就可以翻译成跳转到标记为mark的地方执行。

我们分析下程序的执行过程:

执行printf("一个循环语句的例子\n");

标记第二行的开始位置位置,起名为mark。

执行printf("*");

跳转到mark位置。

执行printf("*);

跳转到mark位置。

执行printf("*);

跳转到mark位置。

执行printf("*);

......

这样就达到了重复执行printf("*);的目的,你可以运行下程序试试,你会发现程序一直在输出星号,实际上printf("hello\n");这句是得不到执行机会的,因为程序一直在重复执行printf("*);这句。

我们怎样才能控制重复执行的次数呢,这就需要我们用一个变量来计数,请看下面的例子:

 知识补充:

  int i=0;  相当于 int i; i=0; 两步操作,这是一种简写方式,注意这句话要写在前面因为c语言要求定义变量的语句要写在开头的位置。

  i=i+1; 把i的值取出来加1后再存回到i变量里,实现了i变量里的值增加1的运算

例子代码:

int main()

{

    int i=0;

    printf("一个循环语句的例子\n");

    mark:printf("*");

    i=i+1;//这个i变量就像一个能查数的人一样,每执行一次printf("*");i的值就加1

    if(i<10)//这样当i数到10的时候,if条件为假不执行goto,循环就结束了。

    {

    goto mark;

    }

    printf("hello\n");

}

上面的例子用了一个变量i和一个if判断达到了控制循环次数的目的。

这里重复执行的代码为

printf("*");

i=i+1;

if(i<10);

每重复执行一次i的值都不一样,所以if(i<10)才可能不成立,循环才能退出。

我们可以认为i是控制这个循环的变量,i<10是循环的条件,

(共篇)上一篇:选择结构if语句介...|下一篇:
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢