D-P

博客园 首页 新随笔 联系 订阅 管理

级联和嵌套的判断

嵌套

if条件满足或者不满足的时候要执行的时候要执行的仍然是if或者if-else语句,则说这个if是一个嵌套;

注:

  • else总和最近的if关联;

  • 注意大括号{}的范围;

  • 注意首列的对齐;

  •  if (******)
         if(***)
             **
     else
         *****
         //此处else与内层if关联
     if (******)
         if(***)
             **
         else
             ***
     else
         *****
         //此处最后一个else与第一个if关联
  • 在if与else后面总用{}(即使只有一条语句)

级联的if-else

 if (esp1) {
     st1;
 }else if (exp2) {
     st2;
 }else (exp3) {
     st3;
 }    

注:着重单一出口(一个printf)

 

多路分支

 if ( typr==1 )
     printf("你好")
 else if ( type==2 )
     printf("早上好")
 else if ( type==3 )
     printf("晚上好")
 else if ( type==4 )
     printf("再见")
 else
     printf("啊,什么呀?")
     //逐个执行
 switch ( type ) {            //控制表达式
     case 1:                  //case 常量
         printf("你好");      //语句
         break;
     case 2:
         printf("早上好");
         break;
     case 3:
         printf("晚上好");
         break;
     case 4:
         printf("再见");
         break;
     default:
         printf("啊,什么呀?");
 }
     //根据type的值,直接进行case 1、2、3、4与default任何一个
     //只能使用int即整数型
     //常量可以是一个表达式,但必须是也是常量(C99限定)
     //break让进程离开switch-case
     /*case只是一个跳转坐标,如果没有加break,那么进行完一个case会进入下一个case,直到遇到break离开switch-case*/
 

 

算平均数

 int number;
 int sum = 0;
 int count = 0;
 do {
     scanf("%d",&number);
     if ( number != -1) {
         sum += number;
         count ++;
    }
 } while ( number != -1);
 
 printf("%f\n", 1.0*sum/count);    //1.0去乘,sum变成浮点数
    //另一种方法
 int number;
 int sum = 0;
 int count = 0;
 scanf("%d",&number);
     while ( number != -1) {
         sum += number;
         count ++;
         scanf("%d",&number);
     

 

猜数

 #include <stdio.h>
 #include <stdlib.h>
 #include <time.h>
 
 int main()
 {
     srand(time(0));        //得到一个随机的整数
     int number = rand()%100+1;    //得到一个100以内的整数
     int count = 0;
     int a = 0;
     
     printf("我已经想好一个1~100内的数字了");
     do {
         printf("请猜这个1到100以内的数:");
         scanf("%d", &a);
         count++;
         if ( a > number ) {
             printf("你猜的数大了。");
        } else if ( a < number ) {
             printf("你猜的数小了。");
        }
    } while ( a != number );
     printf("太好了,你用了%d次就猜中了答案!\n",count);
     
     return 0;
 }

 

整数的分解

 #include <stdio.h>
 
 int main()
 {
     int x;
     scanf("%d", &x);
     
     int digit;
     
     while () {
         digit = x%10;
         //printf("%d\n", digit);
         ret = ret*10 + digit;
         printf("x=%d,digit=%d,ret=%d\n", x, digit, ret);
         x /= 10;
    }
     printf("%d",ret);
 }        
 //不可以用例如900之类的数字,输出的是9

 

判断和循环常见的错误

  • 循环

  1. 忘记大括号——解决:在if与else都后面加入大括号;

  2. if后面没有分号;

  3. 错误使用=和==——==是相等,=是赋值符号

  4. 在 if 和 else 后面加上大括号形成语句块,代码风格大括号内的语句缩进一个tab的位置;

posted on 2021-03-12 23:54  D-P  阅读(87)  评论(0编辑  收藏  举报