if...else(指标编程教程第九篇:if 选择结构、条件运算符)

提示

这是 2011 年写的一个系列教程。

如果你有编程基础,那么后面这几篇都可以跳过,看看语法就行,如果没有编程基础,那么需要你很耐心地看完。

条件判断是最简单的算法,例如:如果价格跌破 1.5000,买入。我们之前的小程序都是不带判断的,所有语句按由上至下的顺序一句一句执行,条件判断则可以按我们设定好的条件选择性地执行语句。

首先要了解一下关系运算符和关系表达式:

关系运算符包括:<(小于)、>(大于)、<=(小于等于)、>=(大于等于)、==(恒等于)、!=(不等于)。

要注意之前我们用过 =,一个等于号是赋值,把等号右边的值赋给等号左边的变量,两个等号是比较两个量是否相等。

a < 1(a 是否小于 1)、a == 1(a 是否等于 1)、a = 1;(a 的值是 1)。

以上三个中的前两个就是关系表达式,返回一个布尔型的值,true 或者 false。一般关系运算都是在 if 结构和循环结构的括号里,不需要分号结尾,而第三个则是赋值语句。

除了关系运算,还有逻辑运算,逻辑运算符包括:&&(与)、||(或)、!(非)。其值也都是“真”或“假”,下一篇再介绍逻辑运算和优先级。

最简单的条件判断:

// 如果 a 小于 b,则 a 等于 a + 1。
if(a < b){
    a = a + 1;
}

赋值的时候要从等号右往左看,比如 a 的值为 0,那么执行了 a = a + 1 之后,a 的值为 1

看上去有点像一个函数,但是条件判断只是一个结构,没有返回值。再看三个:

if(a < b){
    // 如果 a 小于 b,a 的值增 1。
    a = a + 1;
} else {
    // 否则(a > b 或 a == b),a 的值增 2。
    a = a + 2;
}

if(a < b){
    // 如果 a 小于 b,a 的值增 1。
    a = a + 1;
} else if(a == b){
    // 否则如果 a 等于 b,a 的值增 2。
    a = a + 2;
} else{
    // 否则(a > b),a 的值增 3。
    a = a + 3;
}

if(a < b){
    if(a > 0){a = a + 1;}
    else {a = a + 2;}
} else {
    a = a + 3;
}  // 两个 else 分别代表了 a <= 0 和 a >= b。

上面三个都看懂后再看下面的:

max = (a > b) ? a : b;

条件运算符 ?: 是一个三目运算符(也称三元运算符),要有三个操作对象。如果 a > b 为真,则 max = a,否则 max = b。上面的代码等同于:

if(a > b){max = a;} else {max = b;}

表达式1 ? 表达式2 : 表达式3 这种形式就是一个条件表达式,如果 表达式1 的值为真,则整个表达式的值为 表达式2,否则整个表达式的值为 表达式3。最后试试这个是否能看懂:

max = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);

看懂了就可以继续往后看了。

  • 762

围观大佬

白杉 回复 #1

女装我是拒绝的。

回复内容较长可以拖右下角↑
回到
顶部