if 的常见问题解析

if 的常见问题解析

  1. 空语句的问题

    if (3>2);

    等价于

    if(3>2)

    ;//这是一个空语句

    /*
      2020年6月6日15:20:51
      目的:如果if后面有;的话,结果会是什么样


    */


    # include <stdio.h>
    int main(void)
    {
    if(1>2);
    printf("AAAA ");
    printf("BBBB ");

    return 0;
    }
    /*
    结果:
    在在VC6.0中的结果是:
    -----------------------------------
    AAAA
    BBBB
    -----------------------------------
    总结:如果在if在加;的话,会默认执行if后面的空语句
    */
    1. if (表达式1)

A

else

B

是正确的

if (表达式1)

A

else

B

是错误的

# include <stdio.h>
int main(void)
{
if(3>2) //4行 如果这里加分号,会导致程序编译到第6行时就会出错
printf("哈哈 ");
else //6行
printf("嘿嘿 ");
return 0;
}
  1. if (表达式1)

    A;

    else if (表达式2)

    B;

    else

    D;

    即便表达式1和2都成立,也只会执行A语句。

  2. if (表达式1)

    A;

    else if (表达式2)

    B;

    这样语法不会出错,但是逻辑上有漏洞

  3. if (表达式1)

    A;

    else if (表达式2)

    B;

    else (表达式3)//7行

    D;

    这样写是不对的额,正确的写法是:

    要么去掉7行的(表达式3)

    要么在7行的else后面加if

  4. if (表达式1)

    A;

    else if (表达式2)

    B;

    else (表达式3);

    D;

    这样写语法上不会出错,但是逻辑上是错误的

    else (表达式3);

    D;

    等价于

    else

    (表达式3);

    D;

    循环

    1. 定义:某些代码会被重复执行

      分类:

      1.1 for (1; 2; 3)

      语句A;

      1.2 执行的流程

      单个for循环的使用

      多个for循环的嵌套使用

      for(1;2;3) //1

           for(1;2;3) //2

                       A;//3

      B;//4

      整体是两个语句,1,2,3是第一个语句;4是第二个语句。

      1.3 范围的问题 默认控制一个

       



原文地址:https://www.cnblogs.com/icoding233/p/13174001.html