10.1 if语句

这个如果语句是奥克塔夫的决策语句。有三种基本形式如果语句最简单的形式是这样的:

如果条件)然后身体endif

条件是一个表达式,用于控制语句的其余部分将执行的操作然后身体仅当条件是真的。

中的条件如果若该语句的值为非零,则该语句被视为true;若该语句为零,则为false。如果条件表达式的值在如果语句是向量或amatrix,只有当它不是空的并且全部的的元素为非零。概念上等效的代码条件是一个矩阵,如下所示。

如果matrix)lect if(all(matrix(:)))

if语句的第二种形式如下:

如果条件)然后身体其他的else身体endif

如果条件是真的,然后身体被执行;否则else身体执行。

以下是一个示例:

if(rem(x,2)==0)printf(“x是偶数\n”);else printf(“x是奇数\n”);endif

在本例中,如果表达式rem(x,2)==0为true(即的值x可被2整除),则第一个输出函数语句,否则第二个输出函数语句进行评估。

的第三种也是最普遍的形式如果语句允许将多个决策组合在一个语句中。看起来是这样的:

如果条件)然后身体elseif(条件)elseif身体其他的else身体endif

任意数量的elseif子句可能会出现。依次测试每个条件,如果其中一个条件为真,则其对应的条件</body>执行。如果没有一个条件为真,并且其他的条款存在,则其正文已执行。只有一个其他的子句可能出现,而且必须是语句的最后一部分。

在以下示例中,如果第一个条件为true(即的值x可被2整除),则第一个输出函数语句被执行。如果为false,则测试第二个条件,如果为true(即的值x可被3整除),则第二个输出函数语句被执行。否则,第三个输出函数语句。

if(rem(x,2)==0)printf(“x是偶数\n”);elseif(rem(x,3)==0)printf(“x是奇数,可被3\n整除”);else printf(“x是奇数\n”);endif

请注意elseif关键字不能拼写否则如果,这在Fortran中是允许的。如果是,则其他的如果会告诉Octave把这个当作新的如果另一个中的语句如果语句的其他的条款例如,如果你写

如果c1)车身-1否则如果(c2)车身-2endif

Octave将期望额外的输入来完成第一个如果语句如果您以交互方式使用“八度体”,它将继续提示您进行其他输入。如果Octave正在从文件中读取此输入,它可能会抱怨丢失或不匹配终止语句,或者,如果您没有使用更具体的终止语句(endif,外循环等),它可能只是返回不正确的结果,而不返回任何警告消息。

如果我们重写上面的语句,就会更容易看到错误,

如果c1)车身-1否则如果(c2)车身-2endif

使用缩进显示Octave如何对语句进行分组。详见函数和脚本.


版权所有 © 2024 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号