Day02

if选择结构

if 语句的三个格式
  第一种格式:
      if(表达式){
        条件成立执行的语句
    }
    其他语句

  第二种格式:
      if(表达式){
        条件成立执行的语句
    }else{
        条件不成立执行的语句
    }
    其他语句

  第三种格式:
     if(表达式1){
        表达式1条件成立执行的语句
    }else if (表达式2) {
        表达式2条件成立执行的语句
    }else {
        以上都条件都不成立执行的语句
      }
if 语句的省略大括号格式

如果if 语句省略大括号,那么只有紧随其后的那条语句受到控制,并且if 语句后面不能定义变量

//会产生作用域干扰
int age = 18;
    if(age >= 10)
        int num = 5;
    return 0;
  • { }可以单独出现,{ }单独出现时代表代码块

    { }代码块的作用是隔离变量,代码块内部的局部变量在{ }外面访问不到,只有在该代码块内部才能访问该变量,所以起到了隔离变量的作用

int main()
{
    {
        int age = 88;
        //printf("%i\n", age);
    }
    printf("%i\n", age);
    return 0;
}
  • 在企业开发中常见的格式

2.2.1 在企业开发中,如果要判断是否相等,一般都会把常量写在变量前面.

2.2.2 在企业开发中,一定不要使用 == 来判断两个小数是否相等,因为小数可能会出现丢失精度问题,如果需要判断建议使用 >= 或者 <= 或者将小数转换为字符串在比较.

 int age = 10;
    if(18 == age){
        printf("%i\n", age);
    }
    
    return 0;

  • if else 语句去除大括号匹配问题点

注意点: 如果if else 省略大括号时候,else 会匹配距离自己最近的if,但是有一个前提条件是该if没有被匹配,编译器会把if else 看做是一个整体

 if(0)
        if(1)
        printf("A\n");
        else //会匹配if(1)
        printf("B\n");

  else    //会匹配if(0),不会匹配if(1),因为if(1)已经被上面的else匹配过了
        if(1)
        printf("C\n"); //结果是C
        else //会匹配if(1)
        printf("D\n");

    return 0;
  • 排序问题
    /*
     * 排序(相邻的两个变量进行比较,交换位置即可)
     * 
     * 特点: 经过一轮两两比较之后,最值会出现在最后
     * 
     * 由于最值已经出现在最后,所以下一轮就不用比较最后一个值了
     * 只有经过所有的比较之后,第一个变量没有可比较的变量,才算排序完成
     * 
     */
    /*
     * 要求用户输入四个整数,排序之后输出,由小到大
     */

    //1. 定义四个变量接收参数
    int a = -1, b = -1 , c = -1, d = -1;
    //2. 提示用户输入四个整数
    printf("请输入四个整数,中间用逗号隔开,然后按回车\n");
    //3. 从键盘接收四个整数
    scanf("%i,%i,%i,%i", &a, &b, &c, &d);
    //4. 对四个整数依次排序
    if(a > b){
        int temp = a;
        a = b;
        b = temp;
    }if (b > c) {
        int temp = b;
        b = c;
        c = temp;
    }if (c > d) {  //比较出最大值放在最后
        int temp = c;
        c = d;
        d  = temp;
    }if (a > b) {
        int temp = a;
        a = b;
        b = temp;
    }if (b > c) {    //比较出最大值放在第三位
        int temp = b;
        b = c;
        c = temp;
    }if (a > b){     //比较出最大值放在第二位
        int temp = a;
        a = b;
        b = temp;
    }
    //5. 由小到大输出

    printf("%i,%i,%i,%i\n", a, b, c, d);
    
    
    return 0;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,195评论 0 13
  • 作者 谢恩铭,公众号「程序员联盟」(微信号:coderhub)。转载请注明出处。原文:https://www.ji...
    程序员联盟阅读 3,306评论 3 29
  • 和朋友聊:我要去上学的事。他感觉很不可思议,工作那么久了,还有心思学习,另一层意思也许是,研究生也不怎么好找工作,...
    简单木子阅读 205评论 0 0
  • 我和作者有几乎相同的遭遇,母亲智障,父亲懒做,成年后的我逐渐明白父亲的信心是被母亲的狂暴吞噬掉的,但他竟也放弃两个...
    臭小妈妈阅读 223评论 0 0
  • 身缠百件事, 终日难清闲, 仰首问青天, 我梦何安? 日复一日烦, 时光不复返, 梦像远山雾, 茫茫识不清。 岁月...
    阳静微默阅读 849评论 12 26