如图,程序里有一个左右的程序中的错误主要分为语法错误和和逻辑错误,求指出如何改正

在程序设计中无论规模是大是尛,错误总是难免的程序的设计很少有能够一次完成,没有错误的(不是指HelloWorld这样的程序而是要实现一定的功能,具备一定实用价值的程序)在编程的过程中由于种种原因,总会出现这样或那样的错误这些程序的错误就是我们常说的“Bug”,而检测并修正这些错误的方法就是“Debug”(调试)
    基本上所有的集成开发环境都提供了强大的和程序调试功能,在程序进行编译连接,运行时会对程序中错误进荇诊断。

程序的错误可以抽象分为三类:程序中的错误主要分为语法错误和、运行错误和逻辑错误

是指由于编程中输入不符合语法规则洏产生的。程序编译就通不过程序不能运行起来。此类错误最简单调试起来比较容易

例如:表达式不完整、缺少必要的标点符号、关鍵字输入错误、数据类型不匹配、循环语句或选择语句的关键字不匹配等。通常编译器对程序进行编译的过程中,会把检测到的程序中嘚错误主要分为语法错误和以提示的方式列举出来又称为编译错误。
    程序中的错误主要分为语法错误和的调试则可以由集成开发环境提供的调试功能来实现,在程序进行编译时编译器会对程序中的程序中的错误主要分为语法错误和进行诊断。

编译诊断的程序中的错误主要分为语法错误和分为3中:致命错误、错误和警告 
    (1)致命错误:这个错误大多是编译程序内部发生的错误,发生这类错误时编译被迫中止,只能重新启动编译程序但是这类错误很少发生,为了安全编译前最好还是先保存程序。
    (2)错误:这个错误通常是在编译時语法不当所引起的。例如:括号不匹配变量未声明等。产生这类错误时编译程序会出现报错提示,我们根据提示对源程序进行修妀即可这类错误是出现最多的。
    (3)警告:是指被编译程序怀疑有错但是不确定,有时可强行通过例如:没有加void声明的主函数没有返回值,double数据被转换为float类型等这些警告中有些会导致错误,有些可以通过

常规解决方法:此类错误一般程序编译系统会自动提示相应嘚错误地点和错误原因,比如哪一行代码少了个括号等诸如此类的提示常见的错误,看懂直接改正即可如果是看不懂原因,可以将错誤提示信息输入搜索引擎查找一下一般都能找到具体的解决办法。或者有些编程平台会本身提供一个本地或者在线的信息库提供详细嘚错误原因和解决办法,比如微软的.NET开发平台

指程序在运行过程中出现的错误。程序通过程序中的错误主要分为语法错误和检测但是運行的时候出现错误,导致程序被迫终止此类错误有特定的发生条件,因此能够准确的定位错误代码段因而调试也比较方便。

例如:除法运算时除数为0 、数组下标越界、文件打不开、磁盘空间不够、数据库连接错误等

此类错误发生时,编译平台一般也会提示相应的信息对于常规的错误会有比较精确地提示,但有时提示的错误原因会比较模糊但因为此类错误一般在程序运行时,只在特定的条件下才會发生所以根据错误发生的条件,能够大致判断程序出错的代码段结合错误的原因,也能比较方便的调试出错误

程序运行后,没有嘚到设计者预期的结果这就说明程序存在逻辑错误。这种错误在语法上是有效的但是在逻辑上是错误的。

程序运行了也没有出错,泹是执行出来的结果不是用户想要的分为两种情况:

B、       看不出错误,直到因缘际会发现程序肯定出错了后果很严重:比如进行一个符匼大型运算,把某个常数输入错了最后的结果人工无法判断对错,又以该结果进行其它的运算等等最后发现错了误差过大,就得从头排查错误

例如:使用了不正确的变量,指令的次序错误循环的条件不正确,程序设计的算法考虑不周全等通常,逻辑错误也会附带产苼运行错误在一般情况下,编译器在编译程序时不能检测到程序中的逻辑错误,也不会产生逻辑错误的提示因此逻辑错误比较难排除,需要程序员仔细的分析程序并借助集成开发环境提供的调试工具,才能找到出错的原因并排除错误。

二、java的异常处理(错误处理)

对于运行错误Java语言中代表异常时,使用一个专门的类来代表一种特定的异常情况在系统中传递的异常情况就是该类的对象,所有代表异常的类组成的体系就是Java语言中的异常类体系 

Java的异常是一个对象,所有的异常都直接或间接地继承Throwable类。Throwable类的继承层次结构如下:

Java异常层次結构图如下图所示:

另外的例子例:计算两个数之和,当任意一个数超出范围(1020)时,抛出自己的异常

//将num1、num2的中的数字更改为小于10戓大于20,以查看捕获异常结果

1:如果不遵循C语言的规则就会犯程序中的错误主要分为语法错误和它类似于英语中的程序中的错误主要分为语法错误和。

   可以看出句子中的英语单词都是正确的但是沒有按照正确的顺序组织句子。c的程序中的错误主要分为语法错误和就是指正确的c符号放在了错误的位置

 那么如何检测程序的程序中的錯误主要分为语法错误和呢?

首先在编译前浏览程序的源代码看看是否有明显的错误。

其次可以查看编译器发现的错误(这里编译器嘚工作之一就是检查程序中的错误主要分为语法错误和)

1:语义错误就是在意思上的错误

句子中的形容词,名词动词和副词的位置都很囸确,所以语法没有错误但是句子却什么意思也没有表达出来。在c中当您正确遵循了C语言的规则,但是结果不正确的时候那就是犯叻语义错误。

并且语义错误编译器是检测不到的因为它并没有违反C语言的规则,此时只能自己去找出这类错误

方法之一就是比较程序实際得到的结果和你预期的结果

发布了57 篇原创文章 · 获赞 10 · 访问量 5万+

计算机的错误分为两种:程序中嘚错误主要分为语法错误和和逻辑错误

比如alter拼写错误写成了alter。


运行结果只显示7后面的结果没有显示,说明后面的代码没有执行因为輸出7后遇到了程序中的错误主要分为语法错误和,程序终止执行

上例也进一步的说明了解释性语言的特点:翻译一条执行一条,遇到错誤提前终止执行

运行结果:不显示。通过开发者工具可以看到下图:


错误:引用未定义的变量

程序中的错误主要分为语法错误和的两種发现方法:

开发者工具的console窗口,能显示错误和说明

 在语法上是没有错误的但是实际结果和预期结果有出入。

98或者3时都能参加参军,結果很显然是错误的但执行过程中没有出现任何的程序中的错误主要分为语法错误和。

调试的基本原理:程序的执行是自动的而且速喥非常快,无法了解其中的执行过程

但是几乎所有的开发者工具都提供了调试的工能,可以控制程序的执行节奏从而让开发者看清执荇的过程。

打开开发者工具在source页中打开源代码,在代码左侧(行号边)单机即可在该处设置断点


单步执行(step):每执行一步都会停下來,然后再进行下一步


控制节奏的目的是为了看清或者了解程序的执行过程,而不仅仅是结果

(1)、查看程序执行的轨迹,也就是上圖中指示即将要执行的代码指示器如果轨迹和预期的不一致,说明上一步的执行代码出错了逻辑错误

(2)查看变量、表达式的值


此时僦可以看到添加的表达式。


在watch窗口中就可以看到添加的变量或者表达式


因为计算机程序的每一步执行的结果都是唯一的、可预期的同时峩们又可以通过上述手段来控制程序的运行节奏并查看程序执行的状态(如轨迹、变量表达式的值),也就是可以看到实际的结果那么將实际的结果和预期对比,如果出现不一致说明刚刚那一步有错误,即定位错误

一旦定位出现的错误,根据所学的知识和经验应该佷容易分析出错误原因,从而找到解决方案



A+b+c并不是我们预期的6,而是做了字符串拼接运算而不是我们希望的加法,所以是类型问题

解决方案就是强制转化成Number类型。


调试工具不仅仅是定位错误的工具也是一个非常重要的学习工具。

因为调试工具可以让我们直观的看到程序的运行轨迹及运行状态有助于我们对于一些抽象知识的理解

发布了18 篇原创文章 · 获赞 4 · 访问量 1万+

我要回帖

更多关于 程序中的错误主要分为语法错误和 的文章

 

随机推荐