重读《C primer plus》(六)

程序示例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循环的灵活性

  1. 可以使用递减运算符来做递减计数器
  2. 可以使用计数器2、10等
  3. 可以用字符来代替数字计数
  4. 除了测试迭代次数外,还可以测试其他条件。、
  5. 可以让递增的量几何增长,而不是算术增长。也就是说,每次都乘上而不是加上一个固定的量
  6. 第三个表达式可以使用任意合法的表达式。无论是什么表达式,每次迭代之后都会更新该表达式的值
  7. 可以省略一个或多个表达式(但是不能省略分号),只要在循环中包含能结束循环的语句即可
  8. 第一个表达式不一定是给变量赋初值,也可以使用printf()。记住,在执行循环的其他部分之前,只对第一个表达式求值一次或者执行一次
  9. 循环体中的行为可以改变循环头中的表达式

逗号运算符

可以在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;
}

数组简介

注意的是,字符数组和字符串的区别和联系:如果字符数组的末尾有一个空字符,那么就构成了字符串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值