------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
C语言的学习过程大致上包括基本语法、基本运算、流程控制等。本篇博客先总结下C语言的流程控制和函数。
使用工具:Xcode5.1.1
流程控制
流程控制有三种结构:
1、顺序结构:按照普通编程顺序运行的结构。
2、选择结构:
1> if语句。结构如:
/*
计算个人所得税
*/
#include <stdio.h>
int main()
{
double salary = 0 ;//工资
double tax = 0 ;//税
printf("Please write out your salary:");
scanf("%f",&salary);
//用if-else来判断工资范围
if(salary < 1500 )
{
tax = 0 ;
}else if(salary < 4500)
{
tax = (salary-1455) * 0.1 ;
}else if(salary < 9000)
{
tax = (salary - 4155 ) * 0.2;
}else if(salary < 35000)
{
tax = (salary - 7755 ) * 0.25;
}else
{
tax = (salary - 27255) * 0.3;
}
printf("The tax you shold pay :%f",tax);
return 0;
}
2> switch语句。结构如:
/*
选择出行方式
*/
#include <stdio.h>
int main()
{
int choose=0;
printf("Please select a tool to travel (select number):\n 1:bus \n 2:subway \n 3:plane \n");
scanf("%d",&choose);
switch(choose)
{
case 1:
printf("You will travel by bus");
break;
case 2:
printf("You will travel by subway");
break;
case 3:
printf("You will travel by plane");
break;
default:
printf("Please select number between 1 and 3 ");
break;
}
return 0;
}
1>while循环。结构如:
/*
买钢笔
*/
#include <stdio.h>
int main()
{
int count = 0;
int num = 0 ;
printf("How may pens would you like?\n");
scanf("%d",&num);
while(count < num )
{
count++;
print("%d\n",count);
}
return 0;
}
2>do - while循环。结构如:
/*
买钢笔
*/
#include <stdio.h>
int main()
{
int count = 0;
int num = 0 ;
printf("How may pens would you like?\n");
scanf("%d",&num);
do
{
count++;
print("%d\n",count);
}while(count <= num)
return 0;
}
3>for循环。结构如:
/*
买钢笔......
*/
#include <stdio.h>
int main()
{
int num = 0 ;
printf("How may pens would you like?\n");
scanf("%d",&num);
for(int count=1;count<=num;count++)
{
print("%d\n",count);
}
return 0;
}
注意事项:
1、如果在语句中定义变量,则应注意变量作用域。
例如:在上面买钢笔的例子,while 和 do- while中count 可以在return前面使用;在for循环中count作用域仅为for循环内部。
2、if语句有多个else if,应考虑代码的简练。
例如:在个人所得税例子中第一个条件为if(salary < 1500)接下来第二个条件是if(salary < 4500),而不是 if(salary > 1500 && salary < 4500)。
3、switch语句不能使用于范围大的情况,if语句完全可以代替switch语句。
例如:switch语句在个人所得税例子中不能使用。
4、while循环如果不满足条件则不会允许循环体;do-while循环不管是否满足条件至少会运行一次循环体。
例如:买钢笔的例子中,同样的操作要求,while循环的条件为while(count < num);而do- while 循环的条件为 do - while( count <= num) 。因为do - while无论如何都要执行一次循环体,所以条件也不同了。
5、switch语句中case、break不一定会成对出现。
例如:
/*
打印从a开始到输入的字母
*/
#include <stdio.h>
int main()
{
char insert;
printf("please insert a char:");
scanf("%c",&insert);
switch(insert)
{
case 'a':
printf("a");
case 'b':
printf("b");
case 'c':
printf("c");
......//太多了,此处略去
default:
printf("z");
}
return 0;
}
6、循环语句中有些时候会用到break、continue:break可直接退出循环;continue是跳过本次循环,进行下次循环。
例如:
/*
打印1~100内除13倍数的数
*/
#include <stdio.h>
int main()
{
for(int num=1;num <= 100;num++)
{
if(num%13==0)
continue;
printf("%d\ \ \ ",num);
}
return 0;
}
7、return、break、continue、goto这些属于跳转结构。goto用法:
for (j=0;j<n;j++){ choose1:; for (i=0;i<m;i++){ ... if (..) goto choose1; if (..) goto choose2; if (..) goto choose3; if (..) goto choose4; choose2:; ... } ... choose3:; } choose4:
使用时注意,goto不能跳出自己的函数块!
函数
C程序是由一组变量或是函数的外部对象组成的。
函数使用注意:
1、函数一般是按照编程顺序运行,如果想随意调用,则可以先声明方法。
2、用到形参的函数,返回值必须和形参一致。
3、C语言中可以用#include 来包含其他函数。
4、例:
#include <stdio.h>
int avg(int ,int );
int main()
{
int a = avg(15,99);
printf("avg is %d",a);
return 0;
}
int avg(int a ,int b)
{
return (a+b)/2;
}
声明变量时,可以不写具体的形参