通过一学期对C语言的学习,我发现它有一定难度,但也是非常有趣的一门学科,对我们将来的职业也是有很大的帮助。这段时间我对C语言的了解分为以下几点:
1、语言简洁,使用灵活方便。
2、运算符丰富,表达能力强。
3、数计类型丰富。
4、目标程序质量高,具有面向硬件系统的特点。
5、具有结构化的控制语句和模块化的程序结构。
6、具有编译预处理功能。
7、程序设计自由度大,可移植性好。
在飞机游戏中上学期发现了许多上学期学习的基本C语言语句,例如:
一、if语句:if语句一般有三种基本形式,其它扩展形式,也是以下面三种形式为基础
1、 if……形式
一般格式:if(表达式) 语句;
语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。语句可以是单条语句,也可以是用花括号{}包括起来的复合语句。示例如下:
#includeint main(){ int a,b,max; printf("\n input two numbers: "); scanf("%d%d",&a,&b); max=a; if (max
2、if……else形式
一般格式:
if(表达式)
语句1;
else
语句2;
语义是:如果表达式的值为真,则执行语句1,否则执行语句2 。语句1和语句2可以是复合语句。
示例如下:
#includeint main(){ int a, b; printf("input two numbers: "); scanf("%d%d",&a,&b); if(a>b) printf("max=%d\n",a); else printf("max=%d\n",b); return 0; }
3、if……else……if形式
一般形式为:
if(表达式1)
语句1;
else if(表达式2)
语句2;
else if(表达式3)
语句3;
…
else if(表达式m)
语句m;
else
语句n;
语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。示例如下:
#includeint main(){ char c; printf("input a character: "); c=getchar(); if(c<32) printf("This is a control character\n"); else if(c>='0'&&c<='9') printf("This is a digit\n"); else if(c>='A'&&c<='Z') printf("This is a capital letter\n"); else if(c>='a'&&c<='z') printf("This is a small letter\n"); else printf("This is an other character\n"); return 0; }
4、扩展形式
if条件控制语句的形式是多种多样的。比如if嵌套、if……if类似的形式,但是都离不开上面介绍的三种基本形式。
二、for语句:
1: for语句的格式为: for (初始化语句; 条件语句; ) { 语句1 ; 语句2 ; .... 语句n ; } for 语句的执行顺序是:首先执行“初始化语句”;然后测试“条件语句”;若条件成立,则执行语句1到语句n;然后执行“控制”语句;接着再测试条件语句是否成立,如果成立则重复执行以上过程,直至条件不成立时才结束。如: for(i=0;i<10;i++)......; int i,a[]=new int[10]; for (i=0,i<10;i++) a[i]= 0; 这段代码把整型数组a中的所有元素都赋成0。 你可以在的头部说明你的变量,而且最后一个表达式可以省略,不过要确定在语句中对变量的值有所改变,如: for(int i=0;i<=10;) i+=i; for循环中,“初始化语句”、“条件语句”和“”都可以省略,但是其间的分号不能省略。例如: int i =0 ; for (; ; ;) { if i>10 break ; i = i +1 ; } for循环中省略“条件语句”时,在for语句{}中必须包换转句语句控制程序在某个条件满足时跳出for循环,否则将形成死循环 2:while循环 while循环和for循环类似,其格式为: while (条件语句) { 语句1 ; 语句2 ; .... 语句n ; } 执行while时,先测试“条件语句”,如果条件成立,则执行语句1到语句n,直至条件不成立时调处循环。 int i=0 ; while (i<10) { i++ ; System.out.println("Hey!.get me out of here!:); } 3:do ... while 循环 do ... while 循环语句的格式为: do { 语句1 ; 语句2 ; .... 语句n ; } while (条件语句) ; do ...while 语句的功能是首先执行语句1到语句n,然后进行条件测试,如果条件成立,则继续执行语句1到语句n,否这跳出循环。如: boolean test=false; do { ...... } while(test); 这种控制并不是很常用,但有时却非常重要,使用时注意结尾处while语句后的分号。
三、switch语句:
switch (表达式或属性){
case 值1 : 语句1
break;
case 值2 : 语句2
break;
...
default : 值n
break;
}
从表达式或属性值等于某个case语句后的值开始,它下方的所有语句都会一直运行,直到遇到一个break为止。随后,switch语句将结束,程序从switch结束大括号之后的第一个语句继续执行,并忽略其他case。
假如任何一个case语句的值都不等于表达式或属性的值,就运行可选标签default之下的语句。
假如表达式或属性的值和任何一个case标签都不匹配,同时没有发现一个default标签,程序会跳过整个switch语句,从它的结束大括号之后的第一个语句继续执行。
飞机游戏的结构分析:
switch(getch())//控制左右移动和进入菜单
{
case 'a':case 'A':
if(pl>0)
scr[21][pl]=0,scr[21][--pl]=1;
break;
case 'd':case 'D':
if(pl<width-2)
scr[21][pl]=0,scr[21][++pl]=1;
break;
case 'w':case 'W':
scr[20][pl]=2;
break;
case 27 :
setting();
break;
}
用来控制左右移动和进入菜单
飞机操作按键:A和D控制左右,W发射×××。
程序中定义了一个二维数组,对应游戏界面。读取键盘按键操作数组内的数据,输出整个数组,刷新,重复。
有点类似一个x/y坐标,用不同的数值控制printf显示不同的字符,下面程序很好理解,就是用一个if多条件判断,
for(j=0;j<width;j++)
{
if(a[i][j]==0)
printf(" ");
if(a[i][j]==1)
printf("\5");//输出我机的符号
if(a[i][j]==2)
printf(".");//×××
if(a[i][j]==3)
printf("\3"); //输出敌机符号
if(a[i][j]==4)
printf("|");
if(i==0&&j==width-1)
printf("得分:%d",score);//右上角显示得分
if(i==1&&j==width-1)
printf("死亡:%d",death);
if(i==2&&j==width-1)
printf("设置:Esc");
if(i==3&&j==width-1)
printf("Copyright:王攀");
}
printf("\n");
如果是0,显示空白,1显示我的飞机,2显示×××,3显示敌机,其他的就是显示。