有什么主意为什么否则将永远不会执行?程序运行时,差异的值会不断变化。
double difference = abs(reale_x[0] - reale_x[1]);
if (0 <= difference < 45) {
timer_counter += 1;
if (timer_counter == 30) {
cout << "CLICK" << '\n';
}
}
else if (difference > 50) {
timer_counter = 0;
}
答案 0 :(得分:3)
在c ++中,比较不是这样。
这段代码
if (0 <= difference < 45) {
是否首先比较0是否小于或等于difference
。然后用布尔值true或false“替换”它。然后将bool值(所以1或0)与45进行比较。它将始终小于45。您拥有的始终是真实的语句。
因此,编写if语句的方式是
if (difference >= 0 && difference < 45){
请注意,由于您的else if语句,如果差异> 44和<51
,则该语句将不会执行答案 1 :(得分:2)
if (0 <= difference < 45)
将作为if ((0 <= difference) < 45)
执行,将是0<45
或1<45
,并且始终是true
。这就是else
部分没有得到执行的原因。
答案 2 :(得分:0)
在数学中,我们看到并写入0 <= x < 45
或类似的东西来定义变量x
的范围。但是,为了告诉计算机同一件事,您必须说得更清楚。说,必须告诉编译器,x的值大于或等于零,同时,该值将小于45,您可以通过以下语句告诉编译器:difference >= && difference < 45
。 &&
在大多数语言中都是'AND'运算符。