6章程序的控制结构2循环.ppt
文本预览下载声明
第6章 程序的控制结构(2)——循环 循环——while语句,for语句 while(表达式){ 循环语句; } do{ 循环语句; }while(表达式); for(表达式1; 表达式2; 表达式3){ 循环语句; } while语句 while (表达式){ 循环语句; } 只要表达式的值为非0(真),就重复执行while循环语句,直到表达式值为0(假)时止 do-while语句 do{ 循环语句;}while (表达式); 首先执行语句,然后判断表达式的值。 如果表达式为0,结束while循环语句。否则,再次执行循环语句。 语句会被至少执行一次 for语句 for (表达式1; 表达式2; 表达式3){ 循环语句; } 注意 循环变量的使用 通过循环变量i 的值来控制循环次数。 For循环的循环总次数是已知的。 for语句 for (表达式1; 表达式2; 表达式3){ 循环语句; } 相当于: 表达式1和表达式3可以没有或者是用逗号分隔的多个表达式的组合。但最好不要有太多的表达式组合 选择三种循环的一般原则 如果循环次数已知,用for 如果循环次数未知,用while 如果循环体至少要执行一次,用do-while 这只是“一般”原则,不是“原则” 注意 在for和while语句之后一般没有分号 有分号表示循环体就是分号之前的内容(空循环体) while (i 100); i++; for (i = 0; i 100; i++); printf(%d, i); for通常有一个循环变量控制循环的次数,不要在循环体内改变这个变量 例:计算 n!=1×2×…n 分别用如下语句编程 for while do-while 例:计算 n!=1×2×…n 循环次数已知,首先考虑用for循环语句 #include stdio.h main() { int i, n; /* i是循环变量*/ long p=1; /* 存放阶乘的值 */ printf(Please enter n:); scanf(%d,n); for(i=1; i=n; i++) { p=p*i; } printf(%d!=%ld\n,n,p); } 例:计算 n!=1×2×…n While循环语句实现 int i=1; while (i=n) { p=p*i; i++; } do … while循环语句实现 int i=1; do{ p=p*i; i++; }while (i=n); 例:循环控制语句——猜数游戏 猜数游戏用到的库函数 怎样模拟计算机“想”一个数呢? 随机函数rand() 产生[0,RAND_MAX] 之间的随机数 magic = rand(); #include stdlib.h RAND_MAX在stdlib.h中定义,不大于双字节整数的最大值32767 产生[0,b-1] 之间的随机数 magic = rand()%b; 产生[a,a+b-1] 之间的随机数 magic = rand()%b + a; 例 #include stdlib.h #include stdio.h main() { int magic; /*计算机想的数*/ int guess; /*人猜的数*/ magic = rand()%100 + 1; /*“想”一个[1,100]之间的数magic*/ printf(Please guess a magic number:); scanf(%d, guess); if (guess magic) { printf(Wrong! Too high!\n); } else if (guess magic) { printf(Wrong! Too low!\n); } else { printf(Right! \n); printf(The number is:%d \n, magic); } } 例 #include stdlib.h #include stdio.h main() { int magic; int guess; int counter;
显示全部