使用if语句进行简单查询

时间:2017-12-05 11:15:39

标签: c if-statement

如何实现这个简单的逻辑?

void IRQHandler(void)
{
   if(update_variable == 0)
    {
        if(CONDITION1)
         {

            /* MORE CODE */
            update_variable = 1;
          }
    } /* Here i want to exit the loop */

    if(update_variable == 1) /* execute in next loop */
     { 
         if(CONDITION1)
          {
            /* MORE CODE */ 
            /*UPDATE SOME ARRAY */ 
            update_variable = 0; /* reset variable for next loop */
          } 
      }
  }

基本上,我想在两个连续的中断上检查相同的CONDITION1。对于第一个中断,我想将变量值更新为1并退出循环(如果条件,则不要执行以下操作)。在我看来,我不能使用“如果”的休息条件!我被震撼了一会儿!请帮帮我!

4 个答案:

答案 0 :(得分:2)

你提到循环而你没有使用任何循环。

根据我对您的问题的理解,并且您不想进入第二个条件,只需使用else条件即可。

void IRQHandler(void)
{
   if(update_variable == 0)
    {
        if(CONDITION1)
         {

            /* MORE CODE */
            update_variable = 1;
          }
    } /* Here i want to exit the loop */

    else if(update_variable == 1) /* execute in next loop */
     { 
         if(CONDITION1)
          {
            /* MORE CODE */ 
            /*UPDATE SOME ARRAY */ 
            update_variable = 0; /* reset variable for next loop */
          } 
      }
  }

答案 1 :(得分:0)

您的代码中没有循环,只有一堆使用if条件的选择语句。

在这种情况下,将此视为一个函数体,如果您希望执行不继续执行其余部分,则始终可以从函数中return ;

答案 2 :(得分:0)

if(update_variable == 0)
    {
        if(CONDITION1)
         {
            /* MORE CODE */
            update_variable = 1;
          }
         return;
    } /* Here i want to exit the loop */

这不是一个循环,因此break没有任何内容。使用return退出该功能。

在这种情况下,最好选择M.K的答案并使用else但返回始终是在代码中的任何位置退出函数的选项。如果你想退出很多嵌套的if语句,它会非常有用。

示例:

if(cond1) {
   <code>
   if(cond2) {
      <code>
      if(cond3) {
         <code>
         if(cond4) {
             return;
         }
      <code>
      }
   <code>
   }
}

答案 3 :(得分:-1)

if(CONDITION1)
{
   if(update_variable == 0)
   {
         /* MORE CODE */
          update_variable = 1;
   } 
   else if(update_variable == 1)
   {
         /*Update Some Array*/
         /* MORE CODE */
          update_variable == 0;
   }
}

只需使用else条件,如果最初检查CONDITION1会更好。