今天学习了C语言的循环语句,C语言中循环语句有for, while ,do while ,语句。
条件语句if else,switch ,等。
1: while的格式:
while(条件)
{循环体}
例如:
int i =0;
while (i<5)
{
i++;
printf ("i=%d\n",i);
}
while循环语句要先判断条件是否成立,当条件成立时执行一次循环体,然后再判断条件是否成立,成立再执行一次循环体,直到条件不成立为止,跳出循环体。注意的是如果一开始条件不成立则循环体一次也不执行。在while 中定义新的变量必须要用{}括起来,使变量的作用域清晰。
注意的是while (1) ; 是一个最简单的死循环,因为while后面的语句一般应该用大括号括起来让我们清楚的知道是与while有关的语句,当没有大括号时,则默认为第一条紧跟的语句是与之有关的,第二条则与之无关、因为1是真,所以执行到这条语句时,判断条件为真则执行其后的语句,就是空白语句,因为条件一直成立, 则一直执行空白语句,成为死循环。所以;也不能乱用。
2: do while的格式:
do
{循环体}
while(条件);
例如:int i = 0;
do
{ i++;
printf(" i=%d\n",i);
}
while (i < 5 );
do while 和 while 基本用法差不多,不过两者也有区别,do while 是先执行一次循环体,然后判断条件是否成立,当条件成立时则再次执行一次循环体。然后再判断条件是否成立,知道条件不成立为止跳出循环体,注意的是,不管刚开始条件是否成立都会执行一次循环体,这是跟while 不同的地方。
3: for 循环格式:
for(初始化语句;条件语句;增量语句)
{ 循环体 }
例如:
for (int i=0;i<5; i ++)
{ printf("i= %d\n", i );
}
for循环中 变量的定义在初始化语句中,并且初始化语句在整个for 循环中只使用一次,然后判断条件语句是否成立, 条件成立则执行下面的循环体语句,然后再执行增量语句,然后再判断条件是否成立,条件成立则再次执行循环体语句,在执行增量语句,知道条件不成立,跳出循环体。
4 :if else 格式:
if (条件1)
{ 语句1;}
else if (条件2)
{ 语句2;}
else if (条件3)
{ 语句3;}
......
先判断if 后面的条件是否真,真的话就执行语句1,如果条件1为假,则对比else if 中的条件是否成立, 哪个成立就执行对应的语句,if else 中可以嵌套多个 if else 语句。注意在if 循环中定义新的变量必须用{} 大括号括起来,不然系统在编译时会出现错误,因为系统会分不清楚if 循环中定义的变量的作用域在哪, 出现作用域混淆。
5:switch 语句使用格式:
switch 常量表达式
{ case 数值1:
语句:
break;
case 2 数值2:
语句2;
break;
case 数值3:
语句3 ;
break;
deauful:
break;
}
例如: switch 7
{ case 3:
printf(" A\n");
break;
case 5:
printf("B\n");
break;
case 7:
printf(" C\n");
break;
deauful:
break;
}
switch 语句中,switch 后面的值可以是常量,常量表达式,字符常量,但是不能为变量。执行到switch 这个语句时,会对比case 后面的数值是否与switch 后面的常量值相同,相同时就执行相应case后的语句,遇到break 则退出switch 语句,注意break 不能忘记,忘记的话就会执行case后面的所有语句,不在比较常量值,直到遇到break 为止,才跳出整个语句。在case中定义新的变量也必须要用{}包起来,不然系统无法辨别新定义变量的作用域,出现编译错误break 的作用非常重要,使程序知道执行到这段就跳出循环体。
上面的 这几个循环语句中,while 和 do while 基本可以相互转换。
其中for 的性能最好,因为在for中 定义新的变量是在函数内部,函数调用完毕后就把变量的存储空间清空,不占用内存,使程序运行效率更高性能更好。而其他的变量都是在程序中定义,在整个程序文件中都存在,占用内存。性能不如for。所以相比下,if的灵活性较高。
if 和switch 比较:
1: if语句能完成的功能,switch不一定能完成,
2: 在有些情况下if和switch 可以互换。
3:switch能完成的if 都能完成。
网友评论