程序示例1-while循环
//summing.c
#include<stdio.h>
int main()
{
long num;
long sum = 0;
int status;
printf("Please enter an integer to be summed ");
printf("(q to quit):");
status = scanf("%ld",&num);
while(status == 1)
{
sum += num;
printf("Please enter next integer (q to quit):");
status = scanf("%ld",&num);
}
printf("Those integers sum to %ld.\n",sum);
return 0;
}
用关系运算符和表达式来比较大小
需要注意的是,关系运算符并不能比较字符串。
真值问题
- 可以用while(goats) 代替while(goats != 0)
- 同理while(!goats) 代替while(goats == 0),注意,不要在应使用==的是有使用=。,可以通过使用将常量放在表达式左侧的方式来解决这个问题。
新的_Bool类型
C99提供头文件stdbool.h,该头文件可以将bool成为_Bool的别名,而且还把true和false分别定义为1和0的符号常量。包含该头文件后,C写出的代码可以和C++兼容。
不确定循环和计数循环
程序示例2-for循环
//sweetie2.c
#include<stdio.h.
int main()
{
const int NUMBER = 22;
int count;
for(count = 1;count <= NUMBER;count++)
printf("Be my Valentine!\n);
return 0;
}
for循环的灵活性
- 可以使用递减运算符来做递减计数器
- 可以使用计数器2、10等
- 可以用字符来代替数字计数
- 除了测试迭代次数外,还可以测试其他条件。、
- 可以让递增的量几何增长,而不是算术增长。也就是说,每次都乘上而不是加上一个固定的量
- 第三个表达式可以使用任意合法的表达式。无论是什么表达式,每次迭代之后都会更新该表达式的值
- 可以省略一个或多个表达式(但是不能省略分号),只要在循环中包含能结束循环的语句即可
- 第一个表达式不一定是给变量赋初值,也可以使用printf()。记住,在执行循环的其他部分之前,只对第一个表达式求值一次或者执行一次
- 循环体中的行为可以改变循环头中的表达式
逗号运算符
可以在for语句的初始表达式和更新表达式中使用逗号表达式,逗号表达式虽不局限于在for语句中使用,但是这是它最为常用的地方。
程序示例3-do while
//do_while.c
#include<stdio.h>
int main()
{
const int secret_code = 13;
int code_entered;
do
{
printf("To enter the triskaidekaphobia therapy club ,\n");
printf("please enter the secret code number:");
scanf("%d",&code_entered);
} while(code_entered != secret_code);
printf("Congratulations! You are cured!\n");
return 0;
}
特点
相比较其他两个循环,do while至少会执行一次。
程序示例4-嵌套循环
//rows.c
#include<stdio.h>
int main()
{
const int ROWS = 6;
const int CHARS = 6;
int row;
char ch;
for (row = 0;row < ROWS;row++)
{
for(ch = ('A' + row);ch < ('A' + CHARS );ch++)
printf("%c",ch);
printf("\n");
}
return 0;
}
数组简介
注意的是,字符数组和字符串的区别和联系:如果字符数组的末尾有一个空字符,那么就构成了字符串。
|