變量的定義、類型的聲明以及庫文件的包含都不屬於C語句的 而對於C程序中調用的函數,函數的聲明部分不屬於C語句,函數的執行部分由語句構成
一個程序分爲數據描述和數據操作 前者是聲明 後者是由語句來實現
控制語句
分支語句 if switch
循環 do while while for
轉向 break goto continue return
函數調用語句
printf(); scanf();
表達書語句
空語句
複合語句 就是由{}組成的
C程序的結構
順序 分支:判斷 轉向 循環
賦值語句 x=5;... 它具有右結合性 a=b=c=d a=(b=(c=d))
類型轉換 如果賦值運算符兩邊的數據類型不相同 系統將自動進行類型轉換 將賦值號右邊的類型換成左邊的類型
複合的賦值運算符 += -= *= /= %= <<= >>= &= ^= |=
if else 用的較多的時候應該用switch case break 來代替 switch 語句的注意點 當表達式的值與某個常量表達式的值相等時 就執行他後面的語句 然後就別再進行判斷 繼續執行後面所有的case 後的語句
case後各常量表達式的值不能相同 否則會出現錯誤
case後允許有多個語句 可以不用{}括起來 程序會順序執行
case和default子句的先後順序可以變動 而不會影響程序執行結果 但要注意如果default 子句前置 後便要加break 最後一句可以不加
default子句可以不要
switch的參數不能是浮點型 case後面必須是整形數或者整形表達式
for語句舉例~~~
//質數判斷
#include <stdio.h>
int main(void)
{
int a,i;
printf("Please input a number:/n");
scanf("%d",&a);
for(i=2;i<a;i++)
{
if(a%i==0)
break;
}
if(i==a||1==a)
printf("%d is a prime number/n",a);
else
printf("%d is not a prime number/n",a);
getchar();
return 0;
}
goto 無條件轉移語句 與標號構成循環語句 能起到無條件循環的作用
loop;
......
goto loop;
loop是語句標號 是有效的標識符 後面要有; goto要在一個函數中 但可以不再一個循環層中
#include<stdio.h>
int main(void)
{
int i,j,t=3;
long sum=0;
for(i=1;i<=10;i++)
{
for(j=1;j<i;j++)
t=t*3;
sum+=t;
t=3;
}
printf("The result is/n%ld",sum);
getchar();
return 0;
}
//計算3+3^2+3^3+...+3^10的值。
continue語句是結束本次循環 跳過循環體中的剩餘的語句而強制執行下一次循環 continue只終止本次循環 不能結束整個循環過程 break則是終止整個循環過程 繼續執行循環語句下面的其他語句