If statement 如何编写嵌套if或case以生成提示输入菜单?

If statement 如何编写嵌套if或case以生成提示输入菜单?,if-statement,case,processing,arduino,nested-if,If Statement,Case,Processing,Arduino,Nested If,我正在为我的一个班级做一个体验设计项目,使用旋转电话和arduino工具包创建一个基于自动电话菜单的游戏。来自旋转刻度盘的串行输入通过arduino运行,现在我正在使用处理写入菜单 我有一个行动的大纲,并开始编写一些if-then语句,但现在我偶然发现了case和switch 我对此一无所知,但在课堂上学到了很多 我的问题是如何创建一组连续的嵌套if/then语句或用例,并切换到一系列提示和输入 这是我到目前为止的草图: import processing.serial.*; 串行端口;//从串

我正在为我的一个班级做一个体验设计项目,使用旋转电话和arduino工具包创建一个基于自动电话菜单的游戏。来自旋转刻度盘的串行输入通过arduino运行,现在我正在使用处理写入菜单

我有一个行动的大纲,并开始编写一些if-then语句,但现在我偶然发现了case和switch

我对此一无所知,但在课堂上学到了很多

我的问题是如何创建一组连续的嵌套if/then语句或用例,并切换到一系列提示和输入

这是我到目前为止的草图:

import processing.serial.*;
串行端口;//从串行类创建对象
浮点值;//从串行端口接收的数据
布尔任务1促进;
布尔任务1;
布尔任务2;
布尔拨号;
字体;
无效设置(){
尺寸(800400);
背景(0,0,0);
光滑的();
//重要提示:
//serial.list()检索到的第一个串行端口
//应该是你的Arduino。如果不是,请取消注释下一个
//通过删除//前的行。运行草图
//再次查看串行端口列表。然后,更改
//介于[和]之间的0表示端口号
//您的Arduino已连接到。
//println(Serial.list());
字符串ArduInPort=Serial.list()[0];
端口=新的串行端口(此端口为arduinoPort,9600);
task1=false;
task2=false;
task1prompted=false;
font=createFont(“Arial”,32);
textFont(字体,32);
文本对齐(中心);
}
作废提款(){
如果(port.available()>0){//如果数据可用,
val=port.read();//读取并存储在val中

如果(val>=48&&val您可能需要查找。这是处理事件驱动用户界面的一种非常常见的方法。

我不完全确定您的问题是什么,但如果不只是澄清您在寻找什么,这里可能会有答案

对于case语句,您不需要为可能发生的每一个输出都做一个说明。避免这样做的方法是使用默认语句

例如:

    switch(tone) {
      case 4:
        println("thank you, move to next prompt");  // If 4 move to next prompt
        task2=false;
        task3=true;
        dialed = true;
        break;
      default:
        println("not a valid connection, you lose");  // If not 4 go back to beginning
        task2 = false;
        task3 = false;
        dialed = false;
    }
默认情况不需要中断,因为它已经结束了。但本质上,如果没有其他情况发生,它就是“一网打尽”

也在上面的一些代码中

if (val == 97) {
    println("dialing");
}

if (val == 98){
    println("dialed");
    dialed = true;
}
最好使用“else-if”使其不必检查两个选项是否正确

if (val == 97) {
    println("dialing");
}

else if (val == 98){
    println("dialed");
    dialed = true;
}

如果你在谷歌上搜索Arduino和有限状态机这两个术语,你会找到很多相关的答案。