标签:
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、程序的结构分类
1.顺序结构 “直流型”
2.分支结构 “岔路型”
3.循环结构
二、顺序结构
顺序结构是3种结构中最简单的,也是默认的流程结构:程序中的语句是按照书写顺序执行的。
三、分支结构
1.if语句
C语言的if语句有三种基本形式。
1)第一种形式: if(表达式) {语句};
原理:如果表达式的值为真,则执行其后的语句,否则不执行该语句。例如:
int a = 7; int b=3 if ( a>b) { printf("a>b\n"); } return 0;
2)第二种形式为:if(表达式) {语句1;}else{ 语句2;}
原理:如果表达式的值为真,则执行语句1,否则执行语句2 。例如:
#include <stdio.h> int main(void){ int a, b; printf("输入两个数:"); scanf("%d%d",&a,&b); if(a>b) printf("max=%d\n",a); else printf("max=%d\n",b); return 0; }
3)第三种形式为: if(表达式1)
语句1;
else if(表达式2)
语句2;
else if(表达式3)
语句3;
…
else if(表达式m)
语句m;
else
语句n;
原理:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。例如:
int a = 10;
if ( a==0 ) {
printf("a等于0");
} else if( a>0 ) {
printf("a大于0");
} else {
printf("a小于0");
}
4)if语句的嵌套
例如:
#include <stdio.h> int main(void){ int a,b; printf("please input A,B: "); scanf("%d%d",&a,&b); if(a!=b) if(a>b) printf("A>B\n"); else printf("A<B\n"); else printf("A=B\n"); return 0; }
C语言规定,else 总是与它前面最近的if配对。
2.switch语句
形式:
switch(表达式){
case 常量表达式1: 语句1;
case 常量表达式2: 语句2;
…
case 常量表达式n: 语句n;
default: 语句n+1;
}
原理:先计算表达式的值,再逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
#include <stdio.h> int main(void){ int a; printf("input integer number: "); scanf("%d",&a); switch (a){ case 1:printf("Monday\n"); case 2:printf("Tuesday\n"); case 3:printf("Wednesday\n"); case 4:printf("Thursday\n"); case 5:printf("Friday\n"); case 6:printf("Saturday\n"); case 7:printf("Sunday\n"); default:printf("error\n"); } return 0; }
上述程序,表达的是用户输入一个数,根据用户输入的数输出相应数对应的以及其后的所有语句。
注意:但我们只需要输出一个语句时,我们可以在每个case语句后加”break;“,其作用是结束操作并跳出switch语句。
使用switch语句注意事项:
1)switch(表达式)以及case(常量表达式)中的表达式必须是整型或者可以转变为整型的值。
2)case语句和default语句可以在switch内任意排序。
3)在case后的各常量表达式的值不能相同。
4)case语句中需要定义变量必须加大括号
四、循环结构
循环语句的条件:循环条件、循环体、循环结束语句。
1.while
形式:
while ( 条件 )
{
语句1;
语句2;
....
}
原理:判断条件,当条件为真(非0)时,执行循环体语句,然后再次判断条件,重复上述过程,直到条件不成立就结束while循环。
1 #include <stdio.h>
2 int main(void){
3 int i,sum=0;
4 i=1;
5 while(i<=100){
6 sum=sum+i;
7 i++;
8 }
9 printf("%d\n",sum);
10 return 0;
11 }
上述程序表示1+2+...+100的值。
使用while语句注意事项:
1)条件为非0值,程序将一直循环下去,变为死循环。
2)当条件为一个变量与一个常量进行==或!=的时候,通常把常量写在前面
int num=3;
while(3==num)
3)如果while后只有一个语句可以省略大括号。
2.do-while
形式:
do {
语句1;
语句2;
...
} while (条件);
1 #include <stdio.h>
2 int main(void){
3 int i,sum=0;
4 i=1;
5 do{
6 sum=sum+i;
7 i++;
8 }
9 while(i<=100);
10 printf("%d\n",sum);
11 return 0;
12 }
特点:不管while中的条件是否成立,循环体中的语句至少会被执行一遍。
3.for
形式:
for(表达式1;控制条件; 表达式2) 循环体
原理:
1)先求解表达式1。
2)判断控制条件,若其值为真(非0),则执行for语句中指定的内嵌语句(循环体),然后执行下面第3步;若其值为假(0),则结束循环,转到第5步。
3)求解表达式2。
4)转回上面第2步继续执行。
5)循环结束,执行for语句下面的一个语句。
其他形式:1)定义变量可在括号外
int i=1;
for( ; i<=100 ; i++){
sum=sum+i;
}
2)表达式2省略
for( i=1; i<=100 ; ){
sum=sum+i;
i++;
}
3)都可省略
int i=0;
for( ; ; ){
if(i<=100)
sum=sum+i;
i++;
}else{
break;
}
for循环的嵌套
1 #include <stdio.h>
2 int main(void){
3 int i, j, k;
4 printf("i j k\n");
5 for (i=0; i<2; i++){
6 for(j=0; j<2; j++){
7 for(k=0; k<2; k++){
8 printf("%d %d %d\n", i, j, k);
9 }
10 }
11 }
12 return 0;
13 }
五、break和continue的使用
1.break
break语句用于do-while、for、while循环语句中,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句联在一起,即满足条件时便跳出循环。break只会影响它所在的那个循环。
1 #include <stdio.h>
2 int main(){
3 for (int x = 0; x<2; x++) {
4 for (int y = 0; y<2; y++) {
5 printf("x=%d, y=%d \n", x, y);
6 }
7
8 break;
9 }return 0;
10 }
2.continue
continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。跟break一样,continue只会影响它所在的那个循环。
1 #include <stdio.h>
2 int main(){
3 for (int x = 0; x<50; x++) {
4 if (x%2==0) {
5 continue;
6 }
7
8 printf("x=%d \n", x);
9 }
10 return 0;
11 }
上述程序表示的是0-50之间能被2整除的数。
标签:
原文地址:http://www.cnblogs.com/YjAdair/p/4520907.html