黑马程序员之IOS学习总结——02C语言的流程控制之选择结构

   学完整个C语言后,感觉流程控制很重要,尤其是循环结构中的while循环和for循环,在很多编程思想中都有应用和体现。所以我奉劝像我一样的初学者,一定要牢牢掌握此处的知识,对我们以后更深入学习C语言有着很大的帮助。

流程控制分为:选择结构和循环结构。选择结构包含:if语句,switch语句;循环结构包含:while循环,do while循环和for循环。这些语句允许你只有在程序运行时才能。知道其状态的情况下,控制程序的执行过程。

今天我首先总结下选择结构,选择结构虽然简单,但千万不可掉以轻心,后面很多运算,还有OC的对象方法和内存管理都会用到if选择结构,if语句相比switch用处要广很多。

一、if语句:   

第1种结构:
  if(条件)
  {
      语句1;
      ......
  }

   第2种结构   

  if(条件1)

     {

      语句1; //if语句的执行过程如下:如果条件为真,就执行if的对象;否则,执行else的对象。任何时候两条语句都不可能同时执行 
     
    } 
else
     {
     }


    第3种结构
     if(条件1)
          {
      语句1;
      语句2;
    ......
 
         }
  else if(条件2)
  {
  }
  else if(条件3)
 
{
 
}

 else

  {

  }

 if和else的对象都是单个语句,也可以是代码块。条件可以是任何返回布尔值的表达式。else子句是可选的

例如:

程序运行的时候提示下列信息
  请输入相应数字选择需要执行的运算:
  1 加法
  2 减法

用户选择运算后,再提示用户输入两个需要进行运算的整数,输入完毕后就输出运算结果


#include <stdio.h>
int main()
{
    // 1. 提示用户选择计算类型
    printf("请输入相应数字选择需要执行的运算:\n");
    printf("1 加法\n");
    printf("2 减法\n");
    
    // 2. 定义变量存储用户选择的计算类型
    int type = 0;
    
    // 3. 让用户输入计算类型
    scanf(“%d”, &type);
    
    if (type!=1 && type!=2)
    {
        // type值输入不合理,就直接退出程序
        printf("非法选择\n");
        return 0;
    }
    
    // 4.提示用户输入两个计算的数值
    printf("请连续输入两个需要进行运算的整数,并且以空格隔开\n");
    
    // 5.定义2个变量存储数值
    int num1, num2;
    scanf("%d %d", &num1, &num2);
    
    // 6.计算
    int result;
    if (type == 1) {
        result = num1 + num2;
        printf("%d + %d = %d\n", num1, num2, result);
    } else if (type == 2) {
        result = num1 - num2;
        printf("%d - %d = %d\n", num1, num2, result);
    }
    return 0;
}

   二、switch语句的格式如下:  

    switch(表达式) 

    {

case 常量表达式1:语句1  

case 常量表达式2:语句2  

case 常量表达式3:语句3 

  case 常量表达式n:语句n  

default :语句n+1  

   }

switch语句,其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,  当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,  继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同  时,则执行default后的语句。

 在使用switch语句时还应注意以下几点:

   

   (1)所有case后面的表达式这能是这几种情况:1、枚举常量(有些书称为枚举元素)     2、数值常量 3、字符常量 4、常变量(只能被赋一个值的变量) 5、宏
   (2)switch后面括号里的“表达式”允许是任何类型
   (3)执行完一个case语句后,流程控制就转移到下一个case语句继续执行(case常量表达式只是起语句标号的作用,并不是在该处进行条件判断。在执行switch语句时,根据switch()中表达式的值找到与之匹配的case语句,就从此case语句开始执行下去,不再进行判断)
例如:
   switch (i)
{
   case 1: 语句1;
           case 2: 语句2;
   default: 语句3;
   case 3: 语句4;
}
说明: 当i==1时,从case 1处开始往下一个不落的往下执行,当i==2时,从case 2处开始往下一个不落的往下执行,当i==3时,只执行case 3的语句,当i不等于1,2,3时,会执行defaulr 语句。
(4)switch是选择不是循环。如果在switch中出现了break 语句,该语句的功能只是退出switch语句转去执行它下面的语句。在switch中出现continue 是错误的,除非switch本身就属于for或while循环的一部分。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值