标签: conditional-statements

十进制到二进制转换

我正在为Decimal和Binary基数系统之间的转换编写一个函数,这是我的原始代码:

void binary(int number)
{
    vector<int> binary;

    while (number == true)
    {
        binary.insert(binary.begin(), (number % 2) ? 1 : 0);
        number /= 2;
    }

    for (int access = 0; access < binary.size(); access++)
        cout << binary[access];
}
Run Code Online (Sandbox Code Playgroud)

然而,在我这样做之前它没有用:

while(number)
Run Code Online (Sandbox Code Playgroud)

怎么了?

while(number == true)
Run Code Online (Sandbox Code Playgroud)

这两种形式有什么区别?提前致谢.

c++ evaluation boolean-expression while-loop conditional-statements

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

非零函数帮助,Python Numpy

我有两个数组,我有一个复杂的条件:new_arr<0 and old_arr>0 我使用非零但我收到一个错误.我的代码是这样的:

    indices = nonzero(new_arr<0 and old_arr>0)
Run Code Online (Sandbox Code Playgroud)

我试过了:

    indices = nonzero(new_arr<0) and nonzero(old_arr>0)
Run Code Online (Sandbox Code Playgroud)

但它给了我不正确的结果.

有没有办法解决?有没有办法从两个非零语句中获取公共索引.例如,如果:

    indices1 = nonzero(new_arr<0)
    indices2 = nonzero(old_arr>0)
Run Code Online (Sandbox Code Playgroud)

这两个指数将包含:

   indices1 = array([0, 1, 3])
   indices2 = array([2, 3, 4])
Run Code Online (Sandbox Code Playgroud)

正确的结果是从这两个中得到共同的元素(在这种情况下,它将是元素3).像这样的东西:

    result = common(indices1, indices2)
Run Code Online (Sandbox Code Playgroud)

python numpy conditional-statements

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

Java中有效且漂亮的字符串条件

我对代码风格有疑问:

假设我有一个包含一些信息的字符串(如"Information1"或"Information2").基于此我想用工厂创建对象.显然我可以这样写:

if(string.equals("Information1")){
  Factory.createInformation1Object();
}
if(string.equals("Information2")){
  Factory.createInformation2Object();
}
if(string.equals("Information3")){
  Factory.createInformation3Object();
}
Run Code Online (Sandbox Code Playgroud)

现在我想知道是否有更好(更漂亮)的方法来做到这一点.我真的很喜欢访问者模式的多重调度思路,但我无法看到一种方法可以轻松地应用这个特定的问题.

java string conditional-statements

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

麻烦与Haskell条件

我是Haskell的初学者,在下一个街区遇到麻烦:

up_heap :: Num a => [a] -> [a] -> [a]
up_heap heap (h:t) =
let ppos = quot (length heap) 2 in
        case ((ppos > 0) && ((heap !! ppos) > h)) of
            True ->
                let (upper, (p:lower)) = splitAt ppos heap in
                    up_heap upper (h:lower) ++ (p:t)
            False ->
                heap ++ h:t
Run Code Online (Sandbox Code Playgroud)

下一个错误:无法推断(Ord a)因使用">"而产生

怎么改进这个?

haskell conditional-statements

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

进入单个查询

我有一张桌子

 unam     fnam

 john     alex
 alex     john
Run Code Online (Sandbox Code Playgroud)

如果unam'john'== fnam'alex'或unam'alex'== fname'john',我想要一个返回true的查询

我不知道如何在一个查询中执行此操作.我的代码

$re = mysql_query("SELECT 1 FROM tab WHERE unam='john' and fnam='alex' LIMIT 1"); 
$ir = mysql_query("SELECT 1 FROM tab WHERE unam='alex' and fnam='john' LIMIT 1"); 

if ((!(mysql_num_rows($re))) && (!(mysql_num_rows($ir)))) echo 'not exists';
Run Code Online (Sandbox Code Playgroud)

我已经执行了2个单独的查询(一个用于unam 'john' == fnam 'alex'和其他unam 'alex' == fname 'john'查询,如果两个查询都没有任何行,则它不存在回声.

我想可能是它可以优化到单个查询.任何人都可以帮助我.谢谢

php mysql conditional-statements

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

是否可以在Haskell中编写嵌套的条件语句?

我仍然在努力学习Haskell的语法,因为它与我之前见过的任何其他编程语言都不同.在大多数命令式编程语言中,可以创建如下的嵌套条件语句:

function thing1(x){
    if(x > 2){
       if(x < 5){
           return 3;
       }
       else if(x < 10){
           return 10;
       }
       else if(x >= 10){
           return 6;
       }
    }
    else{
        return 4;
    }

}
Run Code Online (Sandbox Code Playgroud)

但是,经过多次尝试后,我仍然没有想出Haskell中的等效语法:我尝试在Haskell中创建一个等效函数,我得到了一个语法错误prog.hs:10:1: parse error on input main':

thing1 x =
    if x > 2 then
        if x < 5 then
            3
        else if x < 10 then
            10
        else if(x >= 10)
            6
    else
        4

main = do
    putStr(show(thing1 6))
Run Code Online (Sandbox Code Playgroud)

我不确定这里的语法有什么问题:是否有可能在Haskell中创建嵌套条件语句,就像在其他语言中一样?

haskell conditional-statements

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

带有单个管道的Javascript条件语句"|"

只是想知道是否有人曾经遇到过这个问题.

我在一个项目(从另一个开发人员移交)中发现了一个看起来像这样的条件语句:

if (variableOne == true | variable2 == true) {
    // Do something here
}
Run Code Online (Sandbox Code Playgroud)

它没有错误,所以似乎工作.但是,我和一位同事从未见过一个带有单个管道的OR语句|,只有2个||.

任何人都可以阐明这个谜团吗?

谢谢,詹姆斯

javascript conditional-statements

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

TSQL SELECT基于条件

我试图根据条件从CTE中做出选择.

我已经为今天的期间宣布了一个变量(@PRD).它保留了我们目前所处期间的价值.

现在我想从一个表中做出选择,根据我们是否在今年上半年来限制返回的信息.

例如,我们处于第2期,所以我希望从我的CTE返回的所有内容都在PRD 1和5之间.如果我们在第6期(5之后),那么是的,我想要从表中返回所有内容.

这是我想要完成的伪代码:

SELECT
    CASE
       WHEN @PRD <= 5
         THEN (SELECT * FROM DISPLAY WHERE PERIOD IN (1,2,3,4,5))
         ELSE (SELECT * FROM DISPLAY)
    END 
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

当未使用EXISTS引入子查询时,只能在选择列表中指定一个表达式.

请问我怎么能这样做?

谢谢x

编辑/更新:

更多的代码涉及CTE并且非常长.底线是让我说我​​有这个CTE

;WITH DISPLAY as (
     select * from lots_of_things
)
SELECT * FROM DISPLAY
Run Code Online (Sandbox Code Playgroud)

在此CTE上进行常规选择后,它返回如下所示的数据:

PERIOD (INT)    DEPARTMENT   GROUP  BUDGET
1               ENERGY       HE     500
2               ENERGY       HE     780
3               ENERGY       HE     1500
4               ENERGY       HE     4500
5               ENERGY       HE     400
6               ENERGY       HE     3500
7               ENERGY …
Run Code Online (Sandbox Code Playgroud)

t-sql select sql-server-2008 conditional-statements

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

if(true || true || false)语句在javascript中是真的吗?

我有一些代码来保护我的页面不被iframed.

window.onload = function(){
 try
  {
   if (window.parent && window.parent.location.hostname !== "app.herokuapp.com"){
      throw new Error();
   }
   catch (e){
   //do something
   }
  }
Run Code Online (Sandbox Code Playgroud)

它完全正常,直到我尝试添加更多值来比较主机名.我想添加自定义域名.我试过这个:

window.onload = function(){
 try
  {
   if (window.parent && (window.parent.location.hostname !=="app.herokuapp.com" 
   || window.parent.location.hostname !== "www.app.com"
   || window.parent.location.hostname !== "localhost")){
      throw new Error();
   }
   catch (e){
   //do something
   }
  }
Run Code Online (Sandbox Code Playgroud)

这总是返回true,因此会抛出错误.我怎样才能做到这一点?除非主机名匹配这些字符串,否则我想抛出一个错误,无论如何都会抛出错误.我是新来的,会喜欢一些帮助!谢谢.

PS.我添加了"localhost",因为我希望能够在推送到heroku之前在本地测试它.

javascript if-statement boolean conditional-statements

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

C:内存中的循环,条件,结构

这个问题可能听起来微不足道但是,我知道每当一个函数开始执行时,堆栈中就会为函数的所有局部变量等创建堆栈帧,但是我无法理解当for循环开始执行或者内部的代码时会发生什么.如果条件开始执行.将它们视为在函数的堆栈框架内执行似乎是不合理的,因为它们有自己的范围,因此它们有自己的局部变量.但是,它们可以访问它们上面的函数的变量,因此这似乎意味着它们位于函数的堆栈框架内.

所以有人可以为我清楚这一点吗?

它们在被执行时实际位于内存中的哪个位置?

同样的问题出现在结构上,它们有自己的范围,它们不是指针,而只是更大的"盒子",包含整数,字符*等.

c memory struct loops conditional-statements

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