- 语句块
- 表达式操作符
- break 语句
- continue 语句
- return 语句
- if-else 语句
- switch 语句
- while 循环语句
- for 循环语句
语句描述了完成一项任务的算法操作规则。程序自身就足如此的语句序列。一条条语句之间以分号 ; 分隔。
一条语句能占一行或多行。二个或许多语句也能书写于同一行上。控制实施顺序的语句(if, if-else, switch, while和for)可以相互嵌套。
示例:
if(Month() == 12) if(Day() == 31) Print("新年快乐!");
一个复合语句(一个语句块)可以由一条语句构成,也可以由大括弧{}括起来的一条或多条任意类型的语句构成。大括弧{}后而不必跟着分号(;)。
示例:
if(x==0) { Print("无效位置 x=",x);return; }
任何以分号(;)终结的表达式都被看为是一个操作符。这里罗列了一部分表达式操作符的范例:
赋值运算符:
Identifier=expression;
x=3;y=x=3; // 错误
赋值运算符在表达式操作符中只限一次运用。
函数调用运算符:
Function_name(argument1,…, argumentN);
FileClose(file);
空运算符
仅仅只有一个分号(;)构成,用来表明控制语句中无任何语句。
reak语句可以终止最邻近的switch, while或for语句的实施。Break语句由近期的终止条件语句控制。本语句目的之一就是当满足一定条件时完成循环的实施。
示例:
// 搜索第一个零元素for(i=0;icontinue 语句 continue语句控制最邻近的循环语句while或for返回循环开始,接着实施下一次循环。continue 语句与break 语句作用相反。
示例:
// 统计数组中非零元素个数int func(int array[]) { int array_size=ArraySize(array);int sum=0; for(int i=0;i} return 语句 return语句终结目前函数的实施,返回到调用程序。语句return(expression);终结目前函数的实施并带回函数的结果,其中的表达式务必放在圆括号内,不能运用赋值号。
示例:
int CalcSum(int x, int y) { return(x+y);}在函数值的类型定义为void类型时,return 语句后面不能运用表达式:
void SomeFunction() { Print("Hello!");return; // 这个语句能删除 }本函数右大括弧 } 显示这个不带表达式的return语句将清晰实施。
if-else 语句 假使条件表达式为true,语句序列 operator1 实施,语句序列 operator2 将不实施。假使表达式为false,语句序列 operator2 实施,而语句序列 operator1 不实施。
if (expression) operator1else operator2if 语句的 else 部分或许被省略,所以,假使本语句省略了else 部分,if语句在嵌套时或许会显现歧义。在该种情形下,else 会匹配前而近期的不带 else 部分的 if 语句。
示例:
// else 部分匹配第二个if操作符: if(x>1) if(y==2) z=5; else z=6;// else 部分匹配第一个if操作符:if(x>l) { if(y==2) z=5; }else z=6;// if 语句嵌套if(x=='a') { y=1; }else if(x=='b') { y=2; z=3; }else if(x=='c') { y = 4; }else Print("ERROR");switch 语句 witch 语句比较 expression表达式值 和 case中的constant常量值,假使相等,就实施相应的语句块。每个case中constant值务必是一个整数、字符串常量或常量表达式。常量表达式中不能包含变量和函数调用。Switch后而的表达式(expression)务必是整型。
switch(expression) { case constant: operators case constant: operators ... default: operators }假使没有一个case表达式值等于expression表达式值,将实施default后面的语句块。此处default语句并没有是必需的。假使没有一个case常量和expression值统一,而default语句也不没有,那么不会实施任何动作。核心字case及其常量就像标签,即便switch语句带有多个case语句,程序全将按序实施后而所有的语句块,直至遇到break语句为止。
在编译阶段,编译程序将计算常量表达式的值,不允许在一个switch语句内同期存在两个相同的常量值。
示例:
switch(x) { case 'A': Print("CASE A");break; case 'B': case 'C': Print("CASE B or C");break; default: Print("NOT A, B or C");break; }while 循环语句 假使条件表达式expression值为true,while语句一直实施直至条件表达式变成false。假使条件表达式为false,将跳到下一条语句。
while(expression) operator;while语句实施前,表达式expression务必事先定义过。所以,假使表达式值一开始就为false,while语句根本不会实施。
示例:
while(kfor 循环语句 表达式1 (Expression1)定义循环的初始变量,表达式2(Expression2)是循环终止条件。当表达式2 (Expression2)为真(true)的时机,循环体重复实施直至Expression2变为假(false)。假使Expression2变为false,循环将令被中止,并继续实施循环语句的下一条语句。每次循环终结后全将计算表达式3(Expression3),用于更改循环条件。
for (Expression1; Expression2; Expression3) operator;for 语句与下面while语句等价:
Expression1;while(Expression2) { operator; Expression3; }for 语句中我们可以省略三个表达式中任一部分或全部,但足,其中分号 ; 却不能省略。假使省略了表达式2(expression2),则被视作真值。for(; ;)语句是一个死循环,它相当于while(1)语句。表达式1和表达式3都可在内嵌多个逗号(,)分隔的表达式。
示例:
for(x=1;x<=7;x++) Print(MathPower(x,2));for(;;) { Print(MathPower(x,2));x++; if(x>10) break; }for(i=0,j=n-l;i