if语句出错-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 590|回复: 4

[未解决] if语句出错

[复制链接]
发表于 2022-6-1 16:27 | 显示全部楼层 |阅读模式
else  if 语句过多,执行判断出错,求科普else  if 语句最大多少行?



开发板 arduino uno r3

项目使用了 12212 字节,占用了 (37%) 程序存储空间。最大为 32256 字节。
全局变量使用了761字节,(37%)的动态内存,余留1287字节局部变量。最大为2048字节。

*********************************************************


if
else  if
else  if
else  if
else  if
.........
else
发表于 2022-6-1 21:28 | 显示全部楼层
你这不知道什么意思,请贴完整代码,这么多 else if  怎么不用 switch 代替?
发表于 2022-6-2 01:26 | 显示全部楼层
執行判斷出錯?
我看是你自己寫錯的機率比較高吧,
大刮號放錯位置結果就大不相同了

另外,一大串 if 讓它跑完可能都錯過
判斷的時機點了,自己再優化一下程式
的寫法吧,如上面站友說的用其他
條件判定式,switch 很好用
 楼主| 发表于 2022-6-2 09:36 | 显示全部楼层
王尼玛1 发表于 2022-6-1 21:28
你这不知道什么意思,请贴完整代码,这么多 else if  怎么不用 switch 代替?

switch(x)
{
case "ax01":
  ax01=xx;
  Serial.println("ax01修改为:"+String(ax01)+"秒");
  break;
case "fx00":
    vTaskSuspend(TaskPrint1_handle);
    vTaskSuspend(TaskPrint2_handle);
    vTaskSuspend(TaskPrint3_handle);
    vTaskSuspend(TaskPrint4_handle);
    printf("vTaskSuspend\n");
    delay(10);
    break;

case "fx00":
    vTaskResume(TaskPrint1_handle);
    printf("vTaskResume\n");
    delay(10);
    break;
case "axxx":
    Serial.println("******变量等待时间(秒)********");
    Serial.println("ax01=>>>:"+String(ax01));
    Serial.println("ax02=>>>:"+String(ax02));
    Serial.println("ax03=>>>:"+String(ax03));
    Serial.println("ax04=>>>:"+String(ax04));
    Serial.println("********显示结束*************");
    delay(10);
    break;
default:
    Serial.println("未知指令");
    Serial.println(serialCmd);
    Serial.println("指令示例:ax01x1000");
    Serial.println("查看所有变量值:axxx");
    delay(10);
    break;
  
}  

字符串不行
switch quantity not an integer
发表于 2022-6-3 07:48 | 显示全部楼层
rh902999 发表于 2022-6-2 09:36
switch(x)
{
case "ax01":

首先,case "fx00" 重覆了,這在編譯時會報錯

其次,就你這幾個 case 不寫成 switch 也沒差,
把每個 case 改換成 if 的寫法應該就可以了

可就算寫成 else if,就這幾層也能出錯?
還是說這只一小部份?
我能理解你不 po 出原碼的心態,但相對的
別人能幫忙的也有限了

p.s.第一次看人這樣用 switch 然後怪它
不能辨識字串--限用 int 跟 char(單字元)...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2025-1-1 20:08 , Processed in 0.073666 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表