退出while循环

时间:2014-02-26 09:55:33

标签: c++ c while-loop infinite-loop

我在这里有这样的功能。更改设置参数部分时我遇到的问题。 第一:我无法改变Set_parameter Window 第二:因为在我的循环中我说如果没有按键按下显示时钟。因为当我进入Section菜单时它直接反弹回主显示时钟。有什么办法,除非退出/左键按下

,否则我可以保留菜单部分

这是我调用LCD_call函数的主要功能

 void loop()
    {
     int button;
     while(( button = read_LCD_buttons()) != btnNONE)
     {
     lcd_call();digitalClockDisplay();
     }
    }

这里叫LCD_call。 LCD_call

3 个答案:

答案 0 :(得分:1)

break命令应该打破/退出循环。 对于任何输入案例,if条件可能都不是真的。

尝试在if内放置一个断点来调试代码。

if(button==btnSELECT) { break; // place your breakpoint here. }

并检查您的代码是否满足任何可能输入的if条件。

答案 1 :(得分:0)

这应该有效:

void lcd_call()
{
    while ( (button = read_LCD_buttons()) != btnSELECT)
    {
        DS_Counter=Display_selection();

        switch (DS_Counter)
        {
            case 1:
                lcd.setCursor(0,0);
                digitalClockDisplay();
                timedBeep(shortBeep,1);
                break;
            case 2:
                lcd.setCursor(0,0);
                Display_angle();
                timedBeep(shortBeep,1);
                break;
            case 3:
                lcd.setCursor(0,0);
                Display_coordinate();
                timedBeep(shortBeep,1);
                break;
            case 4:
                lcd.setCursor(0,0);
                Display_Wind();
                timedBeep(shortBeep,1);
                break;
            case 5:
                break;
        }
    }
}

答案 2 :(得分:0)

你已经在While循环中给出了一个条件。一旦条件为假,它将打破while循环