【暑假自学C语言】 --7 if switch 部分报错问题讲解

发布于:2023-01-22 ⋅ 阅读:(2) ⋅ 点赞:(0) ⋅ 评论:(0)

目录

前言:

一、if 语句

1、等号出错问题示例:

      代码演示:

      ​编辑解决方法:

2、如果控制多个语句应用花括号代码演示:

      ​编辑解决方法:

3、常见错误:

      示例:

      代码演示:

       解决方法:

二、switch语句

      ①switch(整型)

      ②case 后应该为 整型常量表达式

      错误示例:

 总结:


前言:
 

上篇文章讲解了if switch 语句的基础知识,本次来讲解对于if switch 的注意事项

 


一、if 语句
 

1、等号出错问题

示例:

使用等号不当造成了错误编译

代码演示:

当用一个等号造成错误意思,代码不会报错仍会进行打印

#include<stdio.h>
int main()
{
    int a = 0;
    if (a = 1)
        printf("Hello,World");
    else
        printf("Wrong");
    return 0;
}

打印结果


解决方法:

① 首先我们应该清楚 = 为赋值

                                  == 为判断是否相等

② 我们可以看出将a强行赋值成1,而不是判断是否与所给值相等,造成了正确通过if 语句的假象而且不会报错。

③ 这时我们可以选择将数字和字母倒过来写,这时就会报错防止写出上述代码错误

#include<stdio.h>
int main()
{
    int a = 0;
    if (1 = a )
        printf("Hello,World");
    else
        printf("Wrong");
    return 0;
}

此时编译结果为


这样便有效避免了刚才所述的代码错误

2、如果控制多个语句应用花括号

代码演示:

#include<stdio.h>
int main()
{
    int a = 1;
    if (a == 1)
        printf("Hello\n");
    printf("World\n");
    else
        printf("Hi\n");
    return 0;
}

输出结果:



解决方法:

 将if管理的两个句子用大括号括在一起,形成一个代码块,让其正常运行

代码如下:

#include<stdio.h>
int main()
{
    int a = 1;
    if (a == 1)
    {
        printf("Hello\n");
        printf("World\n");
    }
    else
        printf("Hi\n");
    return 0;
}

此时就可以正常输出。

3、常见错误:

示例:

不知应执行哪个语句

代码演示:

#include<stdio.h>
int main()
{
    int a = 1;
    if (a = 2)
        if (a = 1)
            printf("Hello");
        else
            printf("Hi");
    return 0;
}

解决方法:

①可以观察到第一个 if 语句并不成立,有人就有可能认为不成立就直接执行 else 语句,但是我们可以看到第二个 if 和 else 是对齐的,所以第一个 if 不成立,代码会继续向下运行,进入第二个 if  符合条件,打印 “Hello”。


二、switch语句

注意事项:

①switch(整型)

应定义整型变量放入括号内

否则结果如下:

 ②case 后应该为 整型常量表达式

错误示例:

#include<stdio.h>
int main()
{
    int n = 0;
    switch(n)
        case 1.0:

    return 0;
}

编译结果如下

 

总结:

对于 if switch 两个分支语句中的细节易报错问题进行部分讲解,如有不足,请在评论区指出。