快捷搜索:  xxx  as  1111

C语言入门之转移语句

法度榜样中的语句平日老是按顺序偏向, 或按语句功能所定义的偏向履行的。假如必要改变法度榜样的正常流向, 可以应用本小节先容的转移语句。在c说话中供给了4种转移语句:

goto,break, continue和return.

此中的return语句只能呈现在被调函数中, 用于返回主调函数,我们将在函数一章中详细先容。 本小节先容前三种转移语句。

1.goto语句

goto语句也称为无前提转移语句,其一样平常款式如下: goto 语句标号; 此中语句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加冒号(:)。语句标号起标识语句的感化,与goto 语句共同应用。

如: label: i++;loop: while(x

#include\"stdio.h\"

void main(){

int n=0;

printf(\"input a string\\n\");

loop: if(getchar()!=\'\\n\')

{

n++;

goto loop;

}

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

} int n=0;

printf(\"input a string\\n\");

loop: if(getchar()!=\'\\n\')

{

n++;

goto loop;

}

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

本例用if语句和goto语句构成轮回布局。当输入字符不为\'\\n\'时即履行n++进行计数,然后转移至if语句轮回履行。直至输入字符为\'\\n\'才竣事轮回。

break语句

break语句只能用在switch 语句或轮回语句中, 其感化是跳出switch语句或跳出本层轮回,转去履行后面的法度榜样。因为break语句的转移偏向是明确的,以是不必要语句标号与之共同。break语句的一样平常形式为: break; 上面例题平分手在switch语句和for语句中应用了break 语句作为跳转。应用break语句可以使轮回语句有多个出口,在一些场合下使编程加倍机动、方便。

continue语句

continue语句只能用在轮回体中,其一样平常款式是:

continue;

其语义是:停止本次轮回,即不再履行轮回体中continue 语句之后的语句,转入下一次轮回前提的判断与履行。应留意的是, 本语句只停止本层本次的轮回,并不跳出轮回。

void main(){

int n;

for(n=7;n

本例中,对7~100的每一个数进行测试,如该数不能被7整除,即模运算不为0,则由continus语句转去下一次轮回。只有模运算为0时,才能履行后面的printf语句,输出能被7整除的数。

#include\"stdio.h\"

void main(){

char a,b;

printf(\"input a string:\\n\");

b=getchar();

while((a=getchar())!=\'\\n\'){

if(a==b){

printf(\"same character\\n\");

break;

}b=a;

}

}

反省输入的一行中有无相邻两字符相同。

char a,b;

printf(\"input a string:\\n\");

b=getchar();

while((a=getchar())!=\'\\n\'){

if(a==b){

printf(\"same character\\n\");

break;

}b=a;

}

本例法度榜样中,把第一个读入的字符送入b.然落后入轮回,把下一字符读入a,对照a,b是否相等,若相等则输出提示串并中止轮回,若不相等则把a中的字符付与b,输入下一次轮回。

输出100以内的素数。素数是只能被1 和本身整除的数。可用穷举法来判断一个数是否是素数。

void main(){

int n,i;

for(n=2;n=n) printf(\"\\t%d\",n);

}

} int n,i;

for(n=2;n=n) printf(\"\\t%d\",n);

}

本例法度榜样中,第一层轮回表示对1~100这100个数逐个判断是否是素数,共轮回100次,在第二层轮回中则对数n用2~n-1逐个去除,若某次除尽则跳出该层轮回,阐明不是素数。 假如在所有的数都是未除尽的环境下停止轮回,则为素数,此时有i>=n, 故可经此判断后输出素数。然后转入下一次大年夜轮回。实际上,2以上的所有偶数均不是素数,是以可以使轮回变量的步长值改为2,即每次增添2,此外只需对数n用2~n去除就可判断该数是否素数。这样将大年夜大年夜削减轮回次数,削减法度榜样运行光阴。

#include\"math.h\"

void main(){

int n,i,k;

for(n=2;n=k) printf(\"\\t%2d\",n);

}

}

您可能还会对下面的文章感兴趣: