zoukankan      html  css  js  c++  java
  • 《Visual C#从入门到精通》第四章使用复合赋值和循环语句——读书笔记

    第1章 使用复合赋值和循环语句

    4.1 使用复合赋值操作符

    任何算术操作符都可以像这样与赋值操作符合并,从而获得复合赋值操作符

    不要这样写

    要这样写

    Variable=Variable*number;

    Variable*=number;

    Variable=Variable/number;

    Variable/=number;

    Variable=Variable%number;

    Variable%=number;

    Variable=Variable+number;

    Variable+=number;

    Variable=Variable-number;

    Variable-=number;

    提示:复合赋值操作符具有和简单赋值操作符(=)一样的优先级和右结合性。

    注意:变量递增或递减1不要使用复合赋值操作符,而是使用操作符++和--。

    例如,不要这样写:

    Count+=1;

    而是这样写:

    Count++;

     

    4.2 使用while语句

    使用while语句,可在条件为true时重复运行一个语句。While语句的语法如下:

    while(booleanExpression)

    statement

    先求值booleanExpression(布尔表达式,注意必须放在圆括号中),为true就运行语句(statement)。再次求值booleanExpression,仍为true就再次运行语句。再次求值...如此反复,直至求值为false,此时while语句退出,从while构造后的第一个语句继续。

    while语句在语法上和if语句相似(事实上,除关键字不同,语法完全一样),具体如下。

    • 表达式必须是布尔表达式。
    • 布尔表达式必须放在圆括号中。
    • 首次求值布尔表达式为false,语句不运行。
    • 要在while的控制下执行两个或更多语句,必须用大括号将语句分组成代码块。

    正确while语句写法:

     

    注意:while循环的变量i控制循环次数。这是常见的设计模式,具有这个作用的变量有时也成为哨兵变量

    4.3 编写for语句

    for语句提供了结构更正式版本,它将intialization(初始化)、booleanExpression(布尔表达式)与update control variable(更新控制变量)合并到一起。用过for语句就能体会到它的好处,它能防止遗漏初始化和更新控制变量的代码,减小写出无限循环代码的机率。以下是for语句的语法:

    for(intialization;booleanExpression;update control variable)

    statement

    其中,statement(语句)是for循环主体,要么是一个语句,要么是用大括号{}封闭的代码块。

    正确for语句写法:

     

    注意:1.初始化只发生一次;2.初始化后先执行循环主体语句,再更新控制变量;3.更新控制变量后再重新求值布尔表达式。

    4.4 编写do语句

    do语句它的布尔表达式在每次循环之后求值,所以主体至少执行一次。

    do语句的语法如下(不要忘记最后的分号):

    do

    statement

    while(booleanExpression);

    多个语句构成的循环主体必须是放在{}中的代码块。以下语句向控制台输出0~9,这次使用do语句:

     

    break和continue语句

    break可跳出switch语句。还可用它跳出循环。执行break后,系统立即终止循环,并从循环之后的第一个语句继续执行。在这种情况下,循环的“更新”和“继续”条件都不会重新判断。

    相反,continue语句造成当前循环结束,立即开始下一次循环(在重新求值布尔表达式之后)。下面是在控制台上输出0~9的例子的另外一个版本,这次使用break语句和continue语句:

     

    (建议慎用continue语句,或者根本不用,因为它很容易造成难以理解的代码。continue语句的行为还让人捉摸不透。例如,在for语句中执行continue语句,会在运行for语句的“更新(控制变量)”部分之后,才开始下一次循环。)

  • 相关阅读:
    POJ1811 Prime Test
    HDU3864 D_num
    HDU2138 How many prime numbers
    SPOJ1812 LCS2
    SPOJ1811 LCS
    SPOJ8222 NSUBSTR
    BZOJ4237 稻草人
    洛谷P3601 签到题
    ThreadLocal 线程的私有内存
    netty in action 笔记 二
  • 原文地址:https://www.cnblogs.com/W--Jing/p/9442850.html
Copyright © 2011-2022 走看看