路漫漫其修远兮

吾将上下而求索

导航

控制结构

 

知识点

1.     C#提供了一元自增运算符++和自减运算符--

运算符

名称

示范表达式

解释

++

前自增

++a

预先在a的基础上加1,然后在a所在表达式中使用a的新值

++

后自增

a++

a所在表达式中使用a的当前值后,让a1

--

前自减

--b

预先在b的基础上减1,然后在b所在表达式中使用b的新值

--

后自减

b--

b所在表达式中使用b的当前值后,让b1

 

常见编程错误

1.     试图对非变量引用的一个表达式使用自增或自减运算符,会造成语法错误。所谓变量引用,是在赋值运算左侧出现的一个变量或者表达式。例如,++x+1)是一个语法错误,因为(x+1)并非变量引用。

2.     假如一个for结构的控制变量最早在for结构头部的初始化部分定义的,那么在结构的主体之后,再使用控制变量会导致语法错误。

3.     for结构中使用逗号而不是必需的分号,会造成语法错误。

4.     如果在for结构头的右括号之后紧接一个分号会导致for结构的主体编程一个空语句。这通常是逻辑错误。

5.     忘记在switch结构的每个case末尾放置一个break语句,会造成语法错误。唯一的例外是空case,它的break可以被省略。

6.     创建case时,务必检查所有可能的值,确定switch语句中没有两个case用于相同的整型值,如有相同值,会产生编译错误。

良好编程习惯

1.     for的初始化及自增部分,只使用于控制变量有关的表达式。如还需对其它变量进行处理,就需在循环之前进行(前提是它们只执行一次,比如初始化语句),或者在循环主体内进行(前提是每次重复都要执行,比如自增或自减语句)。

2.     如表达式中包换不变化的值,要避免把它放到一个循环中。这样的表达式只应在循环之前求值一次。通过“优化”,大多数编译器都能禁止冗余的求值。

3.     switch结构中每个case主体语句都应该缩进

4.     在每个switch结构中都提供一个default条件。在使用了default条件的switch结构中,没有明确测试的条件会被忽略。如包括一个default条件,会强制程序员对异常情况进行处理。但某些条件下,不需要处理default

5.     尽管在switch结构中的各个case可按任意顺序发生,但作为一种良好习惯,应该default条件置于最后。

6.     有的程序员认为breakcontinue违反了结构化编程的准则。由于这些语句的效果可由结构化编程技术实现,所以这些程序员不使用breakcontinue

7.     实现高质量的软件工程和获得最佳性能,总是两者无法兼得。通常,达到了其中的一个目标,就必然要在另外一个上付出代价。对于大多数强调性能的应用,可应用一下准则:首先,确保代码简单和正确;然后,使其更快更小,但只是在绝对必要的前提下。

8.     在使用了&&运算符的表达式中,假如不同的条件是相互独立的,就将最有可能成为false的条件放到最左边。再使用了||运算符的表达式中,应把最有可能成为true的条件放到最左边。这样可缩短程序执行时间。

posted on 2005-11-02 17:14  路漫漫其修远兮  阅读(848)  评论(0编辑  收藏  举报