C语言中的语句其实与自然语言的中的语句概念相似,一句话的结束以;为标志,分为五大类
C语言中的控制语句可分为以下三类
1. 条件判断语句也叫分支语句: if 语句、 switch 语句 2. 循环执行语句: do while 语句、 while 语句、 for 语句 3. 转向语句: break 语句、 goto 语句、 continue 语句、 return 语句
转向语句一般配合循环使用
2.分支语句 2.1 if语句来看代码
#includeint main() { int input = 0; printf("前进还是后退?n"); printf("1.前进 2.后退:>"); scanf("%d", &input); if (input == 1) { printf("前进"); } else if (input == 2) { printf("后退"); } else { printf("A和B里选C的家伙啊!"); } return 0; }
if语句的基本语法就是
if(表达式)
{处理方法}
else if(表达式)
{处理方法}
.......
else
{处理方法}
if语句可以接多种else的情况。当处理方法是单语句时,可以不加大括号{},多语句时必须加大括号。else可以加也可以不加。
if语句也可以嵌套,嵌套时,else和与其最近的if进行匹配
#includeint main() { int i = 0; int n = 1; if (i == 1) if (n == 1)//else与我相匹配哦 printf("hh"); else //此处的else上一个if匹配 printf("aa"); return 0; }
这段分支代码是当i是1并且n1是打印hh,i是1但n不是1是打印aa,虽然没有语法错误,但可读性较差。若用大括号写出来,理解起来会方便很多
#include2.2 switch语句int main() { int i = 0; int n = 1; if (i == 1) { if (n == 1) { printf("hh"); } else { printf("aa"); } } return 0; }
switch语句的功能与if语句相同,适用于多个分支的情况,当选择情况较多时,适合用switch语句,其基本的语法形式是
//default是默认的意思
//当常量表达式的结果不符合case中的任何一个
//会执行default
//default的处理方法可由用户定义
//编译器默认的方法是什么也不做
switch (常量表达式)
{
case 常量:
处理方法;
break;
case 另一个常量:
处理方法;
break;
default:
处理方法;
break;
}
switch后面的必须是常量表达式,所得结果必须是一个常量。default子句的位置随意,没有硬性规定
break可以不加,此时会从这一case处依次向下执行,直到遇到break或退出,如
#includeint main() { int input = 1; printf("请输入"); scanf("%d", &input); switch (input) { case 1: printf("111"); case 2: printf("222"); case 3: printf("333"); default: printf("000"); } }
当输入1是,会依次打印111 222 333 000,若输出1、2、3之外的任意一个数,会打印000然后结束。但若default放在case 1 之上,则会打印000111222333
3、循环语句 3.1 while语句while语句的语法为
while (常量表达式)
{
循环体
}
当常量表达式结过为0时结束循环,非0时循环继续,一般在循环体内对循环变量进行调整,使其满足一定条件时结束循环,如要打印1到10的数字
#includeint main() { int i = 10; while (i) { printf("%d", i--); i--; } }
也可以在循环中添加break,continue语句。break语句会结束整个循环,continue语句会调过当前循环。如下,则i为10时跳过循环,i为5时循环结束,最终会打印9 8 7 6
#include3.2 for语句int main() { int i = 10; while (i) { if (i == 5) { break; } if (i == 10) { continue; } printf("%d ", i--); i--; } }
for循环语句在之前的内容中有过简单介绍,其用法也比较简单,语法为
for(循环变量初始化; 循环条件判定; 循环变量的调整)
同样,打印数字1到10,用for循环则是
#includeint main() { int i = 0; for(i = 1; i<=10; i++) { printf("%d ", i); } }
在for循环中,break语句会直接结束循环,而continue语句会跳过当前循环,直接到循环变量调整部分。
在for循环中,初始化,条件,调整,三个部分可任意省略,也可以全省略(此时若循环体内无break则死循环)
3.3 do while语句do while循环与上两者的不同是,这个循环一定会执行一次,不论循环条件如何,语法为
do
{
循环体;
}
while(常量表达式);
break语句依然会直接结束循环,continue语句会跳转到循环条件判断部分(即常量表达式),这种循环用的较少
二、函数函数的基本语法是
//()内是参数
返回值类型 函数名 ()
{
函数体;
}
函数可以实现很多功能,如加法函数,阶乘函数等,虽然C语言本身提供一些库函数,但很多功能仍需要用户自己去实现。使用函数,可以代码复用,简化代码,如下
#includeint Add(int x, int y) { int z = x+y; return z; } int main() { int num1 = 0; int num2 = 0; int sum = 0; printf("输入两个数:>"); scanf("%d %d", &num1, &num2); sum = Add(num1, num2); printf("sum = %dn", sum); return 0; }
不同函数之间可以互相调用,但函数内部不允许定义其他函数



