标签: if-statement

使用没有花括号的if语句是不好的做法吗?

我见过这样的代码:

if(statement)
    do this;
else
    do this;
Run Code Online (Sandbox Code Playgroud)

我不喜欢这样,我认为这更清洁,更具可读性

if(statement){
    do this;
}else{
    do this;
}
Run Code Online (Sandbox Code Playgroud)

这只是一个偏好问题,还是会推荐一种方式?

if-statement coding-style curly-braces

115
推荐指数
7
解决办法
10万
查看次数

PHP中的类型 - 杂耍和(严格)大于/小于比较

PHP以其类型杂耍而闻名.我必须承认这让我很困惑,而且我很难在比较中找出基本的逻辑/基本事物.

例如:如果$a > $b是真实的,$b > $c是真实的,必须将它意味着$a > $c永远真实的吗?

遵循基本逻辑,我会说是的,但是我很困惑,我真的不相信PHP.也许某人可以提供一个不是这样的例子?

另外,我想知道严格的小于和严格的大于运算符(因为它们的含义被严格描述,我过去只从等式比较中知道)如果左右操作数交换时有任何区别严格不平等的价值观:

# Precondition:
if ($a === $b) {
    throw new Exception(
       'Both are strictly equal - can not compare strictly for greater or smaller'
    );
}

($a > $b) !== ($b > $a)
Run Code Online (Sandbox Code Playgroud)

对于大多数类型比较组合,这些更大/更小的比较运算符没有记录,因此在这种情况下阅读手册并不是真正有用.

php comparison logic if-statement ieee-754

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

一行if-condition-assignment

我有以下代码

num1 = 10
someBoolValue = True
Run Code Online (Sandbox Code Playgroud)

我需要设置的值num120如果someBoolValueTrue; 否则什么都不做.所以,这是我的代码

num1 = 20 if someBoolValue else num1
Run Code Online (Sandbox Code Playgroud)

有什么事我能避免这个...else num1部分让它看起来更干净吗?相当于

if someBoolValue:
    num1 = 20
Run Code Online (Sandbox Code Playgroud)

我尝试用这样的方式替换它...else pass:num1=20 if someBoolValue else pass.我得到的只是语法错误.我也不能省略这...else num1部分.

python if-statement

113
推荐指数
8
解决办法
21万
查看次数

IF语句:如果条件为假,如何将单元格留空(""不起作用)

我想写一个IF语句,如果条件为FALSE,则单元格保留为空.请注意,如果在C1中输入以下公式(条件为假),例如:

 =IF(A1=1,B1,"")
Run Code Online (Sandbox Code Playgroud)

如果测试C1为空白或未使用,则即使C1似乎为空白=ISBLANK(C1),也会返回FALSE.这意味着=IF(A1=1,B1,"")如果不满足条件,则公式在技术上不会将单元格留空.

有关实现这一目标的方法的任何想法?谢谢,

excel if-statement worksheet-function excel-2010

112
推荐指数
3
解决办法
109万
查看次数

在将标题分为8个方向时,如何避免if/else if chain?

我有以下代码:

if (this->_car.getAbsoluteAngle() <= 30 || this->_car.getAbsoluteAngle() >= 330)
  this->_car.edir = Car::EDirection::RIGHT;
else if (this->_car.getAbsoluteAngle() > 30 && this->_car.getAbsoluteAngle() <= 60)
  this->_car.edir = Car::EDirection::UP_RIGHT;
else if (this->_car.getAbsoluteAngle() > 60 && this->_car.getAbsoluteAngle() <= 120)
  this->_car.edir = Car::EDirection::UP;
else if (this->_car.getAbsoluteAngle() > 120 && this->_car.getAbsoluteAngle() <= 150)
  this->_car.edir = Car::EDirection::UP_LEFT;
else if (this->_car.getAbsoluteAngle() > 150 && this->_car.getAbsoluteAngle() <= 210)
  this->_car.edir = Car::EDirection::LEFT;
else if (this->_car.getAbsoluteAngle() > 210 && this->_car.getAbsoluteAngle() <= 240)
  this->_car.edir = Car::EDirection::DOWN_LEFT;
else if (this->_car.getAbsoluteAngle() > 240 && this->_car.getAbsoluteAngle() <= …
Run Code Online (Sandbox Code Playgroud)

c++ if-statement

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

#ifdef vs #if - 作为启用/禁用特定代码段编译的方法更好/更安全?

这可能是一种风格问题,但我们的开发团队有一点分歧,我想知道是否有其他人对此事有任何想法......

基本上,我们有一些调试打印语句,我们在正常开发过程中关闭.我个人更喜欢做以下事情:

//---- SomeSourceFile.cpp ----

#define DEBUG_ENABLED (0)

...

SomeFunction()
{
    int someVariable = 5;

#if(DEBUG_ENABLED)
    printf("Debugging: someVariable == %d", someVariable);
#endif
}
Run Code Online (Sandbox Code Playgroud)

有些团队更喜欢以下内容:

// #define DEBUG_ENABLED

...

SomeFunction()
{
    int someVariable = 5;

#ifdef DEBUG_ENABLED
    printf("Debugging: someVariable == %d", someVariable);
#endif
}
Run Code Online (Sandbox Code Playgroud)

......哪些方法对你来说听起来更好?为什么?我的感觉是,第一个更安全,因为总有一些东西被定义,并且没有危险它可以破坏其他地方的其他定义.

c c++ if-statement coding-style c-preprocessor

109
推荐指数
9
解决办法
9万
查看次数

如果与Switch Speed相对

由于编译器优化,Switch语句通常比等效的if-else-if语句更快(例如本文中描述的).

这种优化实际上如何运作?有没有人有一个很好的解释?

c# performance if-statement switch-statement

108
推荐指数
2
解决办法
6万
查看次数

测试string是否为有效整数

我正在尝试做一些常见的事情:在shell脚本中解析用户输入.如果用户提供了有效的整数,则脚本会执行一项操作,如果无效,则执行其他操作.麻烦的是,我还没有找到一种简单(而且相当优雅)的方式 - 我不想用char来区分char.

我知道这一定很容易,但我不知道如何.我可以用十几种语言来做,但不是BASH!

在我的研究中,我发现了这个:

正则表达式,用于测试字符串是否包含基数为10的有效实数

其中有一个关于正则表达式的答案,但据我所知,这是C(以及其他)中可用的函数.尽管如此,它看起来像是一个很好的答案,所以我用grep尝试了它,但是grep不知道该怎么做.我试过-P在我的盒子上意味着把它当作PERL regexp - nada.Dash E(-E)也没有用.并且-F都没有.

为了清楚起见,我正在尝试这样的东西,寻找任何输出 - 从那里,我将破解脚本以利用我得到的任何东西.(IOW,我期待一个不合格的输入在有效行重复时不返回任何内容.)

snafu=$(echo "$2" | grep -E "/^[-+]?(?:\.[0-9]+|(?:0|[1-9][0-9]*)(?:\.[0-9]*)?)$/")
if [ -z "$snafu" ] ;
then
   echo "Not an integer - nothing back from the grep"
else
   echo "Integer."
fi
Run Code Online (Sandbox Code Playgroud)

有人请说明这是最容易做到的吗?

坦率地说,在我看来,这是TEST的缩影.它应该有这样的旗帜

if [ -I "string" ] ;
then
   echo "String is a valid integer."
else
   echo "String is not a valid integer."
fi
Run Code Online (Sandbox Code Playgroud)

string bash integer if-statement

108
推荐指数
7
解决办法
14万
查看次数

Angularjs if-then-else表达式中的构造

我可以以某种方式在angularjs表达式中使用if-then-else构造(三元运算符),例如我有函数$ scope.isExists(item)必须返回bool值.我想要这样的东西,

<div ng-repeater="item in items">
    <div>{{item.description}}</div>
    <div>{{isExists(item) ? 'available' : 'oh no, you don't have it'}}</div>
</div>
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用返回字符串的函数,我很有兴趣在表达式中使用if-then-else构造.谢谢.

javascript if-statement ternary-operator angularjs angularjs-ng-repeat

108
推荐指数
3
解决办法
19万
查看次数

Java变量如何与自身不同?

我想知道这个问题是否可以用Java解决(我是语言新手).这是代码:

class Condition {
    // you can change in the main
    public static void main(String[] args) { 
        int x = 0;
        if (x == x) {
            System.out.println("Ok");
        } else {
            System.out.println("Not ok");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我在实验室收到了以下问题:如何在x == x不修改条件本身的情况下跳过第一种情况(即使条件为假)?

java if-statement

106
推荐指数
10
解决办法
8492
查看次数