ITPub博客

首页 > 数据库 > Oracle > c语言入门:[13]循环语句介绍goto

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

Oracle 作者:ying1029 时间:2013-12-31 15:14:00 0 删除 编辑

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

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

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

第二中方法我们可以

printf("*");

printf("*");

......重复50次

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

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

int main()

{

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

    mark:printf("*");

    goto mark;

    printf("hello ");

}

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

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

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

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

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

执行printf("*");

跳转到mark位置。

执行printf("*);

跳转到mark位置。

执行printf("*);

跳转到mark位置。

执行printf("*);

......

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

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

 知识补充:

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

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

例子代码:

int main()

{

    int i=0;

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

    mark:printf("*");

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

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

    {

    goto mark;

    }

    printf("hello ");

}

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

这里重复执行的代码为

printf("*");

i=i+1;

if(i<10);

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

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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22576640/viewspace-1110113/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-09-21