标签: conditional-statements

用于控制转移的Common Lisp条件系统

我会事先承认以下是对我想要做的非常可怕的描述.提前道歉.请提问我帮忙解释一下.:-)

我用其他语言编写了ETL(提取,转换,加载),这些语言包含以下类似的单个操作:

// in class CountOperation
IEnumerable<Row> Execute(IEnumerable<Row> rows) {
    var count = 0;
    foreach (var row in rows) {
        row["record number"] = count++;
        yield return row;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后将多个这些操作串在一起,并调用Dispatcher,它负责调用Operations并在它们之间推送数据.

我试图在Common Lisp中做类似的事情,我想使用相同的基本结构,即每个操作被定义为输入列表并输出列表的普通函数,但是懒得.

我可以define-condition使用condition(have-value)来使用类似yield行为,并且我可以在一个循环中运行它,并且它工作得很好.我以相同的方式定义操作,循环输入:

(defun count-records (rows)
   (loop for count from 0
         for row in rows
         do (signal 'have-value :value `(:count ,count @,row))))
Run Code Online (Sandbox Code Playgroud)

问题是如果我想将几个操作串在一起,并运行它们.我为这些编写调度程序的第一次尝试看起来像是:

(let ((next-op ...))  ;; pick an op from the set of all ops
  (loop
    (handler-bind
        ((have-value (...)))  ;; records output from …
Run Code Online (Sandbox Code Playgroud)

etl common-lisp lazy-evaluation control-flow conditional-statements

5
推荐指数
0
解决办法
553
查看次数

空循环而不循环检查条件

在一个多线程的C++程序中,我在一个线程中运行相当于这个:

while(obj->member) { } // waiting for obj->member to be set to false in another thread
Run Code Online (Sandbox Code Playgroud)

在另一个线程中,obj-> member设置为false.但是,即使将其设置为false,循环也不会中断.如果我改成它:

while(obj->member) { Sleep(1) }
Run Code Online (Sandbox Code Playgroud)

当obj-> member在另一个线程中设置为false时,它按预期工作并中断.
它为什么这样工作?

c++ multithreading sleep while-loop conditional-statements

5
推荐指数
2
解决办法
2315
查看次数

这个C/C++ if()语句是否可以评估为TRUE?

根据PC-lint,以下声明永远不会是TRUE:

if((variable & 0x02) == 1)
Run Code Online (Sandbox Code Playgroud)

我正在为嵌入式系统使用C编译器,TRUE只要设置了相应的位,就会对其进行评估variable.我想编译器正在进行TRUE/ FALSE比较两侧==而不是比较结果数字.换句话说,每次表达式(varable & 0x02)不为零(即TRUE)时,语句也将是TRUE,因为值1 is also TRUE(不为零).

我不知道C/C++标准是否清楚地定义了编译器在这种情况下应该如何表现.是否有C/C++专家可以根据标准(例如C90, C99,等)所说的回答这个问题?

PS:在上面的语句中,"variable"是一个unsigned char.

c c++ if-statement conditional-statements

5
推荐指数
2
解决办法
1388
查看次数

如何在if else循环中对同一数据使用多个条件?-Java / Android

我有3个Edittext,其输入类型为数字和1个按钮,说完成

我必须检查两个条件,以确保在edittexts中输入的值

当我单击“完成 ”按钮时,我应该能够执行以下操作

----首先要检查编辑文本是否为空

if ((a.getText().toString().equals("")) || (b.getText().toString().equals("")) || (c.getText().toString().equals("")))
    Toast.makeText(getApplicationContext(), "Don't leave grade points empty",0).show();
Run Code Online (Sandbox Code Playgroud)

----第二是检查输入的值是否在一定范围内

if((a1<5 || a1>10)||(b1<5 || b1>10)||(c1<5 || c1>10))
    Toast.makeText(getApplicationContext(), "Range should be between 15 to 25", 0).show();
Run Code Online (Sandbox Code Playgroud)

a,b,c和a1,b1,c1都代表相同的值,我刚刚将a,b,c的值解析为a1,b1,c1中的int

----然后,在其他部分,如果这些值通过上述条件,我应该可以使用它们。

else
{
//do something
}
Run Code Online (Sandbox Code Playgroud)

我的问题是当所有3个edittext都为空时,在单击“ 完成”按钮时遇到“ 强制关闭”错误时,如何使其工作 。我试图将它们放在if,else if和else循环中,还尝试了if,if and else循环

如果不同时满足两个条件,该如何编码,然后转到其他部分?

救命 !!:)

java if-statement conditional-statements

5
推荐指数
1
解决办法
8万
查看次数

条件均值声明

我有一个名为的数据集bwght,其中包含变量cigs(每天抽烟的香烟)

当我使用: 计算cigs数据集中的平均值时,我得到一个数字2.08.bwghtmean(bwght$cigs)

样本中1388名妇女中只有212名吸烟(1176名不吸烟):

summary(bwght$cigs>0) 给出结果:

Mode      FALSE    TRUE    NA's 
logical    1176     212       0
Run Code Online (Sandbox Code Playgroud)

我被要求找出cigs吸烟妇女的平均数(212).

我很难找到排除非吸烟者的正确语法= 0我尝试过:

  • mean(bwght$cigs| bwght$cigs>0)

  • mean(bwght$cigs>0 | bwght$cigs=TRUE)

  • if (bwght$cigs > 0){ sum(bwght$cigs) }

  • x <-as.numeric(bwght$cigs, rm="0"); mean(x)

但似乎没有任何作用!谁能帮帮我吗??

r mean conditional-statements

5
推荐指数
1
解决办法
5万
查看次数

如何在我的程序中包含"和"在正确的位置

像往常一样,我只是另一个绝望的高中生,在经过大量的谷歌搜索后,他们不得不诉诸问题.

我正在研究其中一个可以在现实生活中应用的程序(但从来没有).在这种情况下,一个更改计数器,总计一角硬币,镍币,四分之一和剩余的分数,并用一句话显示它们.

我的问题是,我需要制作一个正确的句子格式,最后使用逗号和"和",这是我用我非常有限的当前知识来管理的.

  • 你看到货币分配的任何地方都是代表它的变量(美分,硬币等)
  • backupInput是保存用户所选分数的变量(从1-100开始)

我的计划部分涉及我想问的是:

    System.out.print(backupInput + ": ");

    // Outputting the quarters
    if (quarters > 0)
    {
      if (quarters == 1)
        System.out.print("one quarter, ");
      else
        System.out.print(quarters + " quarters, ");
    }

    // Outputting the dimes
    if (dimes > 0)
    {
      if (dimes == 1)
        System.out.print("one dime, ");
      else
        System.out.print(dimes + " dimes, ");
    }  

    // Outputting the nickels
    if (nickels > 0)
    {
      if (nickels == 1)
        System.out.print("one nickel, ");
      else
        System.out.print(nickels + " nickels ");
    }

    // …
Run Code Online (Sandbox Code Playgroud)

java currency conditional-statements

5
推荐指数
1
解决办法
128
查看次数

if(!empty($ thing))vs if($ thing)

这两个语句是否完全相同,$thing可以是任何类型的?

if (!empty($thing)) {
    // do stuff
}

if ($thing) {
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以尝试一下,但我不确定我会抓住所有边缘情况......我担心在某些情况下它们会执行相同但不是全部.

php conditional-statements

5
推荐指数
1
解决办法
171
查看次数

过滤具有条件的HABTM关联模型

序言:前几天我问了一个问题来解决一个HABTM过滤器,我甚至不能用教程来做,所以"Obi Kwan Kenobi你是我唯一的希望".

我想要实现的目标:按StaffStaffgroup中使用的GroupID过滤员工

我有以下tablelayout

  • 员工(一个人可以属于许多团体)
  • staff_staffgroups(HABTM链接表)
  • staffgroups(有一个组名)

变量$ tmp给我一个工作数组,但问题是Staff是StaffStaffgroups的子对象.我可以解析throu并重新组装一个数组,但这不是一个很好的解决方案.所以我想在Staff使用条件(参见注释行),但后来我得到错误1054"未找到列:1054未知列".我试图绑定和取消绑定,但没有结果.

$group_id = 2;
$tmp = $this->Staff->StaffStaffgroup->find('all',
        array('conditions' => array(
            'StaffStaffgroup.staffgroup_id' => $group_id,
            'Staff.isActive =' => "1",
            'Staff.last_name LIKE' => "%$name%",
            )
         )
);

debug($tmp);
Run Code Online (Sandbox Code Playgroud)
//$tmpConditions['AND'][] = array('StaffStaffgroup.staffgroup_id' => $group_ids);
Run Code Online (Sandbox Code Playgroud)

编辑:

我尝试了条件和可容纳的行为,但不幸的是它根本没有过滤任何东西

    $this->Staff->contain(array('StaffStaffgroup'));
    $this->paginate = array('StaffStaffgroup' =>array(
                                    array('conditions'  => array(
                                            'StaffStaffgroup.staffgroup_id' => '2'
                                        )
                                    )
                                )
    );
Run Code Online (Sandbox Code Playgroud)
  • 我添加到所有模型:public $ actsAs = array('Containable');
  • 我也尝试了内连接,但没有过滤:

     $this->paginate = array( 
     'conditions' => array('StaffStaffgroup.staffgroup_id' => 2 ),
     'joins' => array( …
    Run Code Online (Sandbox Code Playgroud)

filtering cakephp model conditional-statements

5
推荐指数
1
解决办法
1713
查看次数

SQL查询计算不同条件所持有的结果数

我有一个看起来像的查询

SELECT ju.name,
    COUNT(DISTINCT p.value) AS nproblems
FROM #problems p
JOIN <thing> ju ON <whatever>
WHERE <condition 1>
    AND <condition 2>
    AND <condition 3>
GROUP BY ju.name
ORDER BY nproblems DESC
Run Code Online (Sandbox Code Playgroud)

这很好,并给我一个名称和值的结果集.但我真正关心的是没有WHERE子句的问题数,然后只有条件1,然后条件1 + 2,然后条件1 + 2 + 3.我想写

SELECT ju.name,
    COUNT(DISTINCT p.value WHERE <condition 1>) foo,
    COUNT(DISTINCT p.value WHERE <condition 2>) bar,
...
Run Code Online (Sandbox Code Playgroud)

但遗憾的是我做不到.有这么好的方法吗?

sql sql-server conditional-statements

5
推荐指数
1
解决办法
1094
查看次数

条件语句产生不同的结果然后If Then

试图找到一个小秘密的底部.

我有以下If声明:

Dim myVal As Nullable(Of Guid)
myVal = If(vendor.Address.ID = Guid.Empty, Nothing, vendor.Address.ID)
Run Code Online (Sandbox Code Playgroud)

这里的最终价值myVal是莫名其妙的Guid.Empty.

如果我写相同的代码如下:

Dim myVal As Nullable(Of Guid)
If(vendor.Address.ID = Guid.Empty) Then
  myVal = Nothing
Else
  myVal = vendor.Address.ID
End If
Run Code Online (Sandbox Code Playgroud)

为什么不同?

.net vb.net conditional-statements

5
推荐指数
1
解决办法
90
查看次数