常见编程错误及解决方法,避免踩雷

编程常见问题分析

作为程序员,如果哪一天没有了错误或警告的提示,一定会有一种不祥的预感吧,自从开始编程以来,碰到过很多问题,在遇到错误的时候不要慌,首先看报错,中文直接看,英文翻译看。根据报错找到错误发生的行数,一般错误就在这一行的上下几行代码。



提示:以下是本篇文章正文内容,下面案例可供参考

编程常见三种错误

1.语法错误

概念:是指程序中含有不符合语法规定的语句

成因分析:
  1. 编程语言基础语法掌握不熟练
  2. 编写代码时急于求成,不细心
  3. 对某些知识点没有了解透彻,不知道怎么使用
常见错误:
  1. 引号、逗号、分号错误(中文英文逗号、引号等是不同的,注意切换输入法)
  2. 变量未定义(这个不用多说了吧,一写就明了的…)
  3. 变量赋值、运算时显示类型不匹配(如:int a=6;float b=3.14;当使a=b时,会显示类型不兼容,会导致数据丢失。)
  4. 循环条件判断后面是跟着{大括号},不要加上分号,否则循环不完整起不到作用。这种错误也是编程小白会出现的错误。
for(int i=0;i++;i<100)
 {
     Console.Write(i);
 };
  1. 函数参数不匹配(了解函数的作用,需要传什么参数,对照形参传实参)。
  2. 头文件未包含(有时候你在别处看见一个函数,你自己拿来用,发现此函数竟然未定义,你要知道此函数在哪个头文件里面,或者是否是自己定义的)。

2.逻辑错误

概念:是指程序中没有语法错误,可以通过编译、连接生成可执行程序, 但程序运行的结果与预期不相符的错误。

成因分析:
  1. 和语法错误一样,就是不细心
    比如你想判断一个人的名字是不是叫nanyu,但编写程序时却少写了一个n,变成了nayu,在运行时就会发生逻辑错误。
  2. 对于内存不够了解,指针运用不娴熟。
常见错误:
  1. 进行if判断时使用了赋值运算符=,而不是逻辑运算符==(if(a=b)和if(a==b)是完全不同的,相信大家都遇到过)。
  2. 这个是最让人头疼的错误,运行一下代码,好,没问题!随着你的输入等操作,接着弹出一个窗口,大致意思是访问冲突,然后看着代码一脸懵。这个问题错误也有好多:
    (1). 数组越界访问或者越界存数据
    (2). 指针指向了没有权限访问的内存
    (3). 数据转换时数据溢出
  3. 一元运算符 – 和 *的优先级相同,注意使用括号
  4. 在主函数的内部,定义局部变量一定要放在任何函数或语句执行之前,否则肯定报错。

一定要细心细心再细心


3.系统(编译)错误

概念:是指程序没有语法错误和逻辑错误,但程序的正常运行依赖于某 些外部条件的存在,如果这些外部条件缺失,则程序将不能运行。
成因分析:
  1. 外部依赖项路径不正确
  2. 外部依赖项不存在
  3. 路径错误,使用某些函数时找不到此函数
常见错误:
  1. CS1061错误:当你尝试调用一个不存的方法或者访问一个不存的成员时(或者是与关键字冲突),就会引发CS1061号错误。
error CS1061: Type `__’ does not contain a definition for `__’ and no extension method `__’ of type `__’ could be found (are you missing a using directive or an assembly reference?)
  1. CS1526错误:出现CS1526错误的原因是new运算符用法不正确。
error CS1526: A new expression requires () or [] after type
  1. CS0619错误:当一个类型成员使用Obsolete属性标记时(当该实体再也不建议使用时)会发生这样的状况,所以引用这样子的成员时会形成错误。
error CS0619: `__’ is obsolete: `__ is not supported any more. Use __’
  1. CS1922错误:当错误地使用集合对象初始化表达式时就会引发CS1922号错误。集合对象初始化表达式可以被用作在同一行里初始化多个变量或者一次性给数组赋予多个初值的便捷方式。
error CS1922: A field or property `__’ cannot be initialized with a collection object initializer because type `__’ does not implement `__’ interface

解决方案:

想要解决CS1922号错误,你需要找出错误地使用集合对象初始化表达式的代码段。双击Console里的错误,将会把你带到引起该错误的那一行代码上。
  1. CS0266错误:当尝试把一个double类型的值赋给一个float变量时,会引起CS0266号错误。
error CS0266: Cannot implicitly convert type double’ to float’. An explicit conversion exists (are you missing a cast?)

解决方案:

想解决CS0266错误,要么将double值转型为float,要么干脆使用float代替double。
  1. CS0664错误:当声明一个float变量时,输入一个含有小数的数但却并不含“f”后缀时,将会引发CS0664号错误。
error CS0664: Literal of type double cannot be implicitly converted to type `float’. Add suffix `f’ to create a literal of this type

解决方案:

通过添加“f”后缀到小数的末尾,就能解决CS0664错误。
  1. CS1031错误:引起CS0131号错误的原因是,“=”赋值运算符的左侧不是一个变量、不是一个属性、不是一个索引器。
error CS0131: The left-hand side of an assignment must be a variable, a property or an indexer

解决方案:

在“=”赋值运算符左侧添加变量、属性或者索引器就可以解决CS0131号错误。
  1. CS0120错误:在一个静态的方法里尝试直接引用一个非静态的变量时会发生该错误。(在一个静态的方法里调用另一个非静态的方法时会发生该错误。)
error CS0120: An object reference is required to access non-static member `__’

解决方案:

CS0120错误可以通过创建一个实例来引用这个非静态变量来解决(可以通过创建一个实例来引用这个非静态方法来解决)
  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
有许多常见的Python问题和相应的解决方法。以下是几个常见问题及其解决方法的例子: 1. 模块导入错误:如果你遇到了一个模块无法导入的错误,首先确保你已经正确安装了该模块。你可以使用pip命令来安装缺失的模块。如果你已经安装了模块但仍然出现导入错误,可以检查模块名是否正确拼、所在路径是否正确以及环境变量是否正确配置。 2. 语法错误:当你在编Python代码时,常常会遇到语法错误。这些错误通常是由于拼错误、缺少冒号、括号不匹配等引起的。在遇到语法错误时,建议检查代码的拼和语法结构,确保代码符合Python的语法规则。 3. 程序崩溃或无响应:如果你的Python程序崩溃或者无响应,可以尝试使用try-except语句来捕获可能的异常并进行处理。此外,你还可以使用调试工具来定位问题所在的具体位置,并进行调试修复。 4. 性能问题:如果你的Python程序运行速度较慢,可以尝试使用一些性能优化方法来提升代码执行效率。例如,可以使用适当的数据结构和算法、避免不必要的循环和重复计算、使用并行化或异步编程等技术来提高程序性能。 这只是常见问题的一些解决方法示例,实际上还有许多其他问题和相应的解决方法。对于特定的问题,你可以在搜索引擎或Python社区中寻找更详细的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南余.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值