那些苦逼日子的学习(C语言)06
if语句
如果...或者...否则
也就是说,if语句允许程序通过测试表达式的值从两种选项中选择一项。
if语句表达式
if(表达式1){
语句1;
}else if(表达式2){
语句2;
}else{
语句3;
}
语句next;
注意:1.如果if后面没有语句,加上分号
2.else if 可以出现0 ~ n次
3.else 可以出现0 ~1次
4.分支中只有一条一句的时候可以省略{}
下面我们看段代码:
下面我们看看输入 年 月 ,然后输出这个月有多少天
要注意,在
if
语句的模版中,语句是一条而不是多条,如果想要
if
语句出口
i
两条或者更多条语句,可以使用复合语句
复合语句:
一对大括号
{}
括起来的一组语句,编译器当作一条语句来处理,
{
....
....
}
就近原则:多个
if
后跟
else
的时候,
else
总是与最近的
if
相搭配
switch
语句
在某些情况下 ,需要表达式和多个值进行比较,找出匹配的数值,执行特定的操作
C
语言提供了
switch
语句作为
if
语句的替换
switch(
控制表达式
){
case
常量表达式
1:
语句
1; break;
case
常量表达式
2:
语句
2; break;
...
default: ....
}
控制表达式:计算结果是整形,不能是浮点数或者字符串。
switch
后面必须跟着由
()
括起来的整形表达式。
C
语言把字符当作整数来处理,因此
switch
也可以对字符进行判断
常量表达式:不能包含变量或者函数调用,最终结果必须是整数。常量表达式很像普通的表达式,但是不能包含变量或者函数的调用,
5
是常量表达式,
5+10
也是常量表达式,但是
n+10
不是常量表达式
(
除非
n
是表示常量的宏
)
,分支标号中的常量表达式必须是整数
(
也可以是字符
)
每一个分支中可以包含多条语句,可以不使用
{}
注意:不允许重复的分支存在
各个分支之间的顺序是不固定的。
break
作用:执行
break
语句的时候,导致程序的执行流程跳出
switch
语句,继续执行
switch
后面的语句
需要
break
语句是由于
switch
语句实际上是一种基于计算的跳转,对控制表达式求值的时候,控制会跳转到与
switch
表达式的数值想匹配的分支表好处,分支标号只是一个说明
switch
内部位置的标记。在执行完分支中的最后一条语句的时候,程序控制向下跳转到下一个分支的第一条语句上,从而忽略了下一个分支标号。如果没有
break
语句
(
或者其他的某种跳转语句
)
,控制将会从一个分支继续到下一个分支。
下面我们看看程序
(
对
1~100
分之间的得分进行评级
)
循环语句
循环就是重复执行循环体(
语句块
)
的一种语句,在
C
语言中,每一个循环都有一个控制表达式。每次执行循环体的时候,都要对控制表达式求值。如果表达式为真,那么继续执行循环。
C
语言提供了三种循环语句:
while do
—
while for
语句。当然
goto(
无条件跳转
)
语句也可以进行循环的控制
for
循环
for
循环很适合在使用”计数”变量的循环中,当然,这不是它的限定
1.for(
表达式
1;
表达式
2;
表达式
3){
语句
;
}
表达式
1
:循环条件的初始化
表达式
2
:控制循环的条件
表达式
3
:修改循环变量,是循环趋于结束
(
循环的条件为假
)
一定要注意
for循环中各个表达式的执行顺序
看看
for
循环的执行流程图:
2.for
循环的习惯用法
for(i = 0;i < n;i++)...
for(i = 0;i <= n;i++)...
for(i = n;i > 0;i--)...
for(i = n - 1;i >= 0;i--)...
3.在
for
循环中省略表达式
语句
for
循环远比目前看到的灵活,通常
for
循环用三个表达式来控制循环,但是一些循环可能不需要这么多,因此
C
语言允许省略任意或者全部的表达式
就说上面的那个例子,我们也可以写成这样:
int i = 1;
for(;i < 11;i++){
printf("1 = %2d\n",i);
}
注意:保留第一个表达式和第二个表达式之间的分号,即使省略掉某些表达式,表达式之间的分号也是必须要写的。
上的那个例子,我们还可以这样写:
int i = 1;
for(i = 1;i < 11;){
printf("1 = %2d\n",i++);
}
这个说明了我们也可以使用变量
i
在循环体进行自加操作
但省略掉第二个表达式,那么默认为真,
for
循环不会终止。那么我们可以在循环体中增加
break
语句,跳出循环
但我们省略掉第一个和第三个表达式的时候,那就和
while
循环没什么区别了。
在
C99
中,语句
for
的第一个表达式可以替换为一个声明,这个特性可以让我们声明一个用于循环的变量
如:
for(int i = 0;i < 10;i++)
....
需要注意的是,使用这样形式编写完程序之后,在编译的时候需要加上
-std=c99
,这样就不会报错了
如:
逗号运算符
某些时候我们可能喜欢编写两个
(
或者多个
)
初始表达式,或者希望在没次循环中对几个变量进行自增操作,使用逗号表达式作为
for
循环语句第一个或者第三个表达式可以实现这些想法:
for(i = 0,j = 0;...;printf(),i++,j--)
表达式
1
,表达式
2
计算过程
第一步:先计算表达式
1
,将计算所得的记过丢掉
第二部:计算表达式
2
,将计算结果作为表达式的最终结果
下面我们写短代码:相信大家的英文水平能看懂哦。
for
循环的嵌套
使用
for
循环嵌套可以实现一些复杂的算法:
for(){
for(){
....
}
}
稍微玩一下,
99
乘法表;嘿嘿
while
循环
while(
表达式
)
语句
判断表达式的结果,如果为真,执行语句,返回来继续判断表达式,循环往复,知道表达式的结果为假
int i = 1;
while(i < 11 ){
printf(“%d ”,i++);
}
printf(“\n”);
C
语言中两种常用的无限循环
(
死循环
)
方式:
1.while(1)
语句
2.for(;;;)
语句
来点代码:
do
—
while
循环
语句
do
—
while
:
do{
循环体
;
}while(
表达式
);
注意:
do - while
后面有分号
虽然程序中
while
语句出现的次数比
do - while
语句多,但是后者对于至少一次的循环来说非常的方便
空语句
1.空语句经常用来编写空循环体的循环
2.C
程序员习惯性的把空语句单独放在一行
3.不小心在
if,while,for
中的圆括号后放置分号会创建空语句
break coutinue
语句
break
:
switch
语句:跳出
switch
语句
循环语句:跳出循环
coutinue
:只能适用在循环中
结束本次循环,开始下一次循环
goto
语句
无条件跳转
(
不推荐使用
),
就不多做介绍了
label(
标识符
):
语句
;
...
注意标识符的命名规范
不要省略标识符后面的冒号
|
首发地址http://www.bcwhy.com/thread-18659-1-1.html