一、分支与循环语句
1.语句的概念
C语言中的语句其实与自然语言的中的语句概念相似,一句话的结束以;为标志,分为五大类
C语言中的控制语句可分为以下三类
1. 条件判断语句也叫分支语句: if 语句、 switch 语句2. 循环执行语句: do while 语句、 while 语句、 for 语句3. 转向语句: break 语句、 goto 语句、 continue 语句、 return 语句
转向语句一般配合循环使用
2.分支语句
2.1 if语句
来看代码
#include<stdio.h>
int 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进行匹配
#include<stdio.h>
int 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,虽然没有语法错误,但可读性较差。若用大括号写出来,理解起来会方便很多
#include<stdio.h>
int main()
{
int i = 0;
int n = 1;
if (i == 1)
{
if (n == 1)
{
printf("hh");
}
else
{
printf("aa");
}
}
return 0;
}
2.2 switch语句
switch语句的功能与if语句相同,适用于多个分支的情况,当选择情况较多时,适合用switch语句,其基本的语法形式是
//default是默认的意思
//当常量表达式的结果不符合case中的任何一个
//会执行default
//default的处理方法可由用户定义
//编译器默认的方法是什么也不做
switch (常量表达式)
{
case 常量:
处理方法;
break;
case 另一个常量:
处理方法;
break;
default:
处理方法;
break;
}
switch后面的必须是常量表达式,所得结果必须是一个常量。default子句的位置随意,没有硬性规定
break可以不加,此时会从这一case处依次向下执行,直到遇到break或退出,如
#include<stdio.h>
int 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的数字
#include<stdio.h>
int main()
{
int i = 10;
while (i)
{
printf("%d", i--);
i--;
}
}
也可以在循环中添加break,continue语句。break语句会结束整个循环,continue语句会调过当前循环。如下,则i为10时跳过循环,i为5时循环结束,最终会打印9 8 7 6
#include<stdio.h>
int main()
{
int i = 10;
while (i)
{
if (i == 5)
{
break;
}
if (i == 10)
{
continue;
}
printf("%d ", i--);
i--;
}
}
3.2 for语句
for循环语句在之前的内容中有过简单介绍,其用法也比较简单,语法为
for(循环变量初始化; 循环条件判定; 循环变量的调整)
同样,打印数字1到10,用for循环则是
#include<stdio.h>
int 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语言本身提供一些库函数,但很多功能仍需要用户自己去实现。使用函数,可以代码复用,简化代码,如下
#include <stdio.h>
int 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 = %d\n", sum);
return 0;
}
不同函数之间可以互相调用,但函数内部不允许定义其他函数