------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、分支结构(条件语句)
分支结构即根据条件来判断到底执行哪些代码,分为if语句和switch语句
1.if语句
简单使用:
if (条件判断语句) 语句;例:
if(a>1)
a = a+1;
if (条件判断语句) 语句1; else 语句2;例:
if(a>1)
a=a+1;
else
a = a-1;
if (条件判断语句) {语句1;} else {语句2};例:
if(a>1) {
a=a+1;
}else {
a = a-1;}
if -else if-else,例:
<pre name="code" class="objc"><span style="font-size:14px;">if(a>1) {
a=a+1;
}else if(a>0){
a = a-1;
}else{
a = 0;}</span>
实例1,利用if分支结构实现的剪刀石头布游戏:
#include <stdlib.h>
int main(int argc, const char * argv[]) {
int a,b = -1;
printf("规则:0 代表剪刀,1 代表石头,2 代表布\n请出拳\n");
scanf("%d",&a); //用户输入数组作为出拳依据
b = arc4random_uniform(3); //计算机产生0到2的随机数字作为出拳依据
if (a < 0 || a > 2){
printf("输入错误\n"); //判断输入是否合法
}
else if ((a == 0 && b == 2) || (a == 1 && b == 0) || (a == 2 && b == 1)){ //判断输赢并打印
printf("恭喜你你赢了\n您出的是%d,电脑出的是%d\n",a,b);
}
else if((a == 0 && b == 0) || (a == 1 && b == 1) || (a == 2 && b == 2)){
printf("你和电脑打成了平手");
}
else printf("对不起你输了\n您出的是%d,电脑出的是%d\n",a,b);
return 0;
}
2.switch语句
简单使用:
switch
(表达式) {case 数值1: break; … default: break;},例:
int a = 10;
switch (a) {
case 0:
printf("这是一个0");
break;
case 5:
printf("这是一个5");
break;
case 10:
printf("这是一个10");
break;
default:
printf("什么也不是");
break;
}
实例2,利用switch分支结构实现的通过月份打印季节程序:
#include <stdio.h>
int main(int argc, const char * argv[]) {
int mon;
printf("请输入月份\n");
scanf("%d",&mon); //定义变量接收用户输入的月份
if (mon < 1 || mon > 12) { //判断输入是否合法
printf("输入月份有误\n");
}
switch (mon) { //通过switch语句执行相应代码并打印结果
case 3:
case 4:
case 5:
printf("现在是春季\n");
break;
case 6:
case 7:
case 8:
printf("现在是夏季\n");
break;
case 9:
case 10:
case 11:
printf("现在是秋季\n");
break;
case 12:
case 1:
case 2:
printf("现在是冬季\n");
break;
default:
break;
}
return 0;
}
二、循环结构
1.while语句
简单使用:
while (表达式) {语句;},例:
while(a<5){
a++;
}
实例3,实现1加到100的程序:
#include <stdio.h>
int main(int argc, const char * argv[]) {
int a = 0;
int sum = 0; //定义变量储存结果
while (a <= 100) { //循环从1加到100并用sum储存结果
sum += a;
a++;
}
printf("1加到100的结果为%d\n",sum); //打印结果
return 0;
}
2.do while语句
用法与while用法类似,只不过这里是先执行一次循环体后在进行循环条件判断
3.for循环
简单使用:
for(语句1;语句2;语句3){语句4;},例:
for(int i = 0;i<5;i++){
printf("正再循环");
}
实例4,实现打印九九乘法表的程序:
break通常用于switch和循环中,作用是跳出当前循环,注意一个break只向外跳一层
#include <stdio.h>
int main(int argc, const char * argv[]) {
for (int a = 1;a <= 9 ;a++) { //外层循环控制第二个数从1到9
for (int b = 1; b <= a; b++) { //里层循环控制第一个数只能是大于等于1且小于等于第二个数的整数
printf("%d*%d=%d ",b,a,a*b); //打印每个式子
}
printf("\n");
}
return 0;
}
4.循环中的break和continuebreak通常用于switch和循环中,作用是跳出当前循环,注意一个break只向外跳一层
continue则用于for、while、do-while中,通常与if连用,结束指定条件下的循环,用于加速循环
三、函数
任何一个C语言程序都是由一个或者多个程序段构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”,所以,可以说C语言程序是由函数构成的。C语言中定义函数的目的是为了将一些常用的功能封装起来,方便以后调用
1.无参无返回值函数:void 函数名(){语句;}例:
void print(){
printf("这是一个函数");
}
2.无参有返回值函数:int 函数名(){语句;}例:
int test(){
printf("这是一个函数");
return 0;
}
3.有参无返回值函数:void 函数名(参数){语句;}例:
void test1(int a){
printf("a的值为%d",a);
}
4.有参有返回值函数:
int 函数名(参数){语句;}例:
int test1(int a){
printf("a的值为%d",a);
return a;
}
5.递归函数:函数本身调用自己的函数
下面函数属于递归函数,作用是计算n的阶乘
int cheng(int n){
int result = 0;
if (n == 1){
result = 1; //多次调用后,n值最终减为1,结束递归引用
}else {
result=cheng(n-1)*n; //n传入函数后,执行阶乘运算
}
return result;
}
6.注意事项:
1)不能嵌套定义函数
2)不能重复定义一个函数,但可以重复声明
3)死循环调用,即递归调用,需要有让函数调用结束的条件
4)函数在调用前必须要进行声明
四、补充:include
include是一个系统预处理指令,作用是拷贝程序所需的头文件,只是一个文件拷贝作用
1.#include < >表示引入系统头文件
2.#include " "表示引入用户自定义头文件
3.程序进行编译时include的文件寻找路径为:
用户自己写的头文件—>到编译器路径下寻找—>到系统include路径下找—>没有找到就会报错