************************20090526 陳惠堂 **************************
while(條件)
{
敘述
}
for 很適合來做固定迴圈
while 比較適合做不固定或是無限迴圈(只知道結束條件, 不知道會跑幾圈)
Lab:
// include 引入 .h (標頭檔)
// header .h 要放在程式的最前面
// 引入 stdio.h 及 stdlib.h
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
//進入主程式
int main()
{
char ch;
ch = getche();
// for(;ch!='\r';) 使用 for 的方式
// 當輸入字元不是 Enter \r 為Enter
while(ch != '\r')
{
ch=getche();
}
system("pause"); //執行系統內的 pause指令 暫停 宣告被寫在 stdlib.h 內
return 0;
}
Lab:
// include 引入 .h (標頭檔)
// header .h 要放在程式的最前面
// 引入 stdio.h 及 stdlib.h
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
//進入主程式
int main()
{
// 宣告 字元 char
char ch;
printf("Enter your Password:");
//當輸入的字元不等於 Enter 13 為 Enter 的內碼
while( (ch=getch()) != 13 )
//列印出 * 字元
printf("*");
system("pause"); //執行系統內的 pause指令 暫停 宣告被寫在 stdlib.h 內
return 0;
}
Lab: 統計 點數
// include 引入 .h (標頭檔)
// header .h 要放在程式的最前面
// 引入 stdio.h 及 stdlib.h
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
//進入主程式
int main()
{
int r,s=0;
// Start Rand 亂數起始值 使用time(0) 去抓現在的時間
srand(time(0));
//將亂數 除以6 求餘數 +1 , 因為除以6 會餘 0,1,2,3,4,5
for(int i=0;i<4;i++) r =" rand()%6+1;">//rand的起始點都是固定
printf("%d\t",r);
}
printf("Sum=%d\n",s);
system("pause"); //執行系統內的 pause指令 暫停 宣告被寫在 stdlib.h 內
return 0;
}
Lab: 統計 點數, 14 點就停下來
// include 引入 .h (標頭檔)
// header .h 要放在程式的最前面
// 引入 stdio.h 及 stdlib.h
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
//進入主程式
int main()
{
//設定起始值 s=0
int r,s=0;
// Start Rand 亂數起始值 使用time(0) 去抓現在的時間
srand(time(0));
// 當 s 不等於 14 繼續執行
while(s != 14)
{ //先訂定 s 起始值為0 注意這個是在 while 迴圈內
s=0;
//將亂數 除以6 求餘數 +1 , 因為除以6 會餘 0,1,2,3,4,5
for(int i=0;i<4;i++) r =" rand()%6+1;"> // s = s + r
s += r;
//rand的起始點都是固定
printf("%d\t",r);
}
//列出 點數加總
printf("sum=%d\n",s);
}
system("pause"); //執行系統內的 pause指令 暫停 宣告被寫在 stdlib.h 內
return 0;
}
*do while
注意 while 後面要加上 ;
語法
do;
{
敘述
}while(條件);
Lab: 使用 do while 的方式
// include 引入 .h (標頭檔)
// header .h 要放在程式的最前面
// 引入 stdio.h 及 stdlib.h
#include "stdio.h"
#include "stdlib.h"
//進入主程式
int main()
{
//設定起始值 s=0
int r,s=0;
// Start Rand 亂數起始值 使用time(0) 去抓現在的時間
srand(time(0));
//使用 do while 的方式, 先執行敘述 再判斷
do
{ //先訂定 s 起始值為0 注意這個是在 while 迴圈內
s=0;
//將亂數 除以6 求餘+1 , 因為除以6 會餘 0,1,2,3,4,5
for(int i=0;i<4;i++)
{
r = rand()%6+1;
// s = s + r
s += r;
//rand的起始點都是固定
printf("%d\t",r);
}
//列出 點數加總
printf("sum=%d\n",s);
// 當 s 不等於 14 繼續執行, 注意 do while 後面的 while要加上 ;
}while(s != 14);
system("pause"); //執行系統內的 pause指令 暫停 宣告被寫在 stdlib.h 內
return 0;
}
Lab: 使用 do while 的方式
// include 引入 .h (標頭檔)
// header .h 要放在程式的最前面
// 引入 stdio.h 及 stdlib.h
#include "stdio.h"
#include "stdlib.h"
//進入主程式
int main()
{
//設定起始值 s=0 t=0 來算次數
int r,s=0,t=0;
// Start Rand 亂數起始值 使用time(0) 去抓現在的時間
srand(time(0));
//使用 do while 的方式, 先執行敘述 再判斷
do
{ //先訂定 s 起始值為0 注意這個是在 while 迴圈內
s=0;
//將亂數 除以6 求餘+1 , 因為除以6 會餘 0,1,2,3,4,5
for(int i=0;i<4;i++)
{
r = rand()%6+1;
// s = s + r
s += r;
//rand的起始點都是固定
printf("%d\t",r);
}
//列出 點數加總
printf("sum=%d\n",s);
//每執行一次 t + 1
t++;
// 當 s 不等於 14 繼續執行
}while(s != 14);
//列出執行的次數
printf("Play Time counts: %d\n",t);
system("pause"); //執行系統內的 pause指令 暫停 宣告被寫在 stdlib.h 內
return 0;
}
Lab:
// include 引入 .h (標頭檔)
// header .h 要放在程式的最前面
// 引入 stdio.h 及 stdlib.h
#include "stdio.h"
#include "stdlib.h"
//進入主程式
int main()
{
//定義一個 for 迴圈 i 要小於 3 才執行
for(int i=0; i<3;i++)
{
// 執行另一個 子迴圈 for , j 要小於 5 才執行
for(int j=0; j<5;j++)
//列印出 i 還有 j 的值
printf("i=%d,j=%d\n",i,j);
printf("\n");
}
system("pause"); //執行系統內的 pause指令 暫停 宣告被寫在 stdlib.h 內
return 0;
}
*IF
語法
if(條件)
{
敘述
}
else
{
敘述
}
Lab: if
// include 引入 .h (標頭檔)
// header .h 要放在程式的最前面
// 引入 stdio.h 及 stdlib.h
#include "stdio.h"
#include "stdlib.h"
//進入主程式
int main()
{
//定義一個整數
int n;
printf("Enter Number:");
//等使用者輸入 輸入為 n 的值
scanf("%d",&n);
// 抓餘數 是否為0 因為 偶數可以被 2 整除
if(n%2 == 0)
//可以被整除 列印出 Even 偶數
printf("Even\n");
//如果 餘數不等於 0
else
//列印出 Odd 奇數
printf("Odd");
system("pause"); //執行系統內的 pause指令 暫停 宣告被寫在 stdlib.h 內
return 0;
}
Lab: 四個一樣才停止
// include 引入 .h (標頭檔)
// header .h 要放在程式的最前面
// 引入 stdio.h 及 stdlib.h
#include "stdio.h"
#include "stdlib.h"
//進入主程式
int main()
{
//設定起始值 s=0 t=0 來算次數
int r,s=0,t=0,p=0;
// Start Rand 亂數起始值 使用time(0) 去抓現在的時間
srand(time(0));
//使用 do while 的方式, 先執行敘述 再判斷
do
{ //先訂定 s 起始值為0 注意這個是在 while 迴圈內
s=0;
//將亂數 除以6 求餘+1 , 因為除以6 會餘 0,1,2,3,4,5
for(int i=0;i<4;i++)
{
r = rand()%6+1;
//針對第一次執行
if(i == 0)
{
//p 等於丟出來的點數
p=r;
printf("p=%d\n",p);
}
//如果 r 等於 p (因為第2次 r會再產生), 次數 再加 1
if(r == p)
s++;
//rand的起始點都是固定
printf("%d\t",r);
}
printf("\n",s);
//每執行一次 t + 1
t++;
// 當 s 不等於 4 繼續執行, 也就是沒有四顆一樣
}while(s != 4);
//列出執行的次數
printf("Play Time counts: %d\n",t);
system("pause"); //執行系統內的 pause指令 暫停 宣告被寫在 stdlib.h 內
return 0;
}
*巢狀 IF
語法
if(條件1)
{
敘述1
}
else if(條件2)
{
敘述2
}
else if(條件n)
{
敘述n
}
else
敘述
Lab: BMI 計算 + IF
// include 引入 .h (標頭檔)
// header .h 要放在程式的最前面
// 引入 stdio.h 及 stdlib.h
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
//進入主程式
int main()
{
float w,h,bmi;
printf("Please input your Height(cm)\n");
//利用scan 定義 h 記得要使用位置 所以前面要加上 & 符號
scanf("%f",&h);
printf("Please input your Weight(KG)\n");
//利用scan 定義 w 記得要使用位置 所以前面要加上 & 符號
scanf("%f",&w);
//計算 BMI pow(底, 次方)
//BMI 為 體重/身高的2次方
//pow 必須 #include "math.h"
bmi = w/pow(h/100,2);
// 列印出BMI 值取到 小數點2位
printf("Your BMI is: %.2f\n",bmi);
//利用巢狀 IF 來告知 體重BMI狀況
if(bmi <>
printf("您的體重為 過輕\n");
else if(bmi <>
printf("您的體重為 標準\n");
else if(bmi <>
printf("您的體重為 過重\n");
else if(bmi <>
printf("您的體重為 輕度肥胖\n");
else if(bmi <>
printf("您的體重為 中度肥胖\n");
else
printf("您的體重為 重度肥胖\n");
system("pause"); //執行系統內的 pause指令 暫停 宣告被寫在 stdlib.h 內
return 0;
}
***************************************************************
沒有留言:
張貼留言