Questions tagged «if-statement»

“ if”语句是大多数编程语言中的流控制结构,该结构根据二进制条件(通常在运行时评估)分支执行流。If语句通常也也称为条件语句。使用此标签时,如果您的问题是特定于语言的,还请包含适当的语言标签,例如“ java”。


6
如何防止ifelse()将Date对象转换为数字对象
我正在使用该函数ifelse()来操纵日期向量。我期望结果是class Date,并且很惊讶地得到了numericvector。这是一个例子: dates <- as.Date(c('2011-01-01', '2011-01-02', '2011-01-03', '2011-01-04', '2011-01-05')) dates <- ifelse(dates == '2011-01-01', dates - 1, dates) str(dates) 这尤其令人惊讶,因为在整个矢量上执行该操作会返回一个Date对象。 dates <- as.Date(c('2011-01-01', '2011-01-02', '2011-01-03', '2011-01-04','2011-01-05')) dates <- dates - 1 str(dates) 我是否应该使用其他函数对Date向量进行运算?如果是这样,什么功能?如果没有,如何强制ifelse返回与输入类型相同的向量? 帮助页面的ifelse表示这是一项功能,而不是错误,但是我仍在努力寻找对我发现令人惊讶的行为的解释。
161 r  datetime  if-statement 

15
如何缩短我的条件陈述
我有一个很长的条件语句,如下所示: if(test.type == 'itema' || test.type == 'itemb' || test.type == 'itemc' || test.type == 'itemd'){ // do something. } 我想知道是否可以将此表达/陈述重构为更简洁的形式。 关于如何实现这一点的任何想法?

14
在C / C ++中检查NULL指针[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 5年前关闭。 改善这个问题 在最近的代码审查中,贡献者试图强制NULL以下列方式执行对指针的所有检查: int * some_ptr; // ... if (some_ptr == NULL) { // Handle null-pointer error } else { // Proceed } 代替 int * some_ptr; // ... if (some_ptr) { // Proceed } else { // Handle null-pointer error } 我同意他的方法在某种意义上更为清晰,因为它明确地说“确保此指针不为NULL”,但我要反驳这一点,说的是从事此代码工作的任何人都将理解在指针中使用指针变量。if语句隐式检查NULL。我也觉得第二种方法引入类似漏洞的可能性较小: if (some_ptr = NULL) 这只是查找和调试的绝对痛苦。 …



3
在Swift的if语句中使用多个let-as
我要从字典中解开两个值,在使用它们之前,我必须将它们强制转换并测试正确的类型。这是我想出的: var latitude : AnyObject! = imageDictionary["latitude"] var longitude : AnyObject! = imageDictionary["longitude"] if let latitudeDouble = latitude as? Double { if let longitudeDouble = longitude as? Double { // do stuff here } } 但是我想将两个查询打包在一起。这样就可以了: if let latitudeDouble = latitude as? Double, longitudeDouble = longitude as? Double { // …

17
if语句中的赋值
我有一个课程Animal,及其子课程Dog。我经常发现自己编写了以下几行代码: if (animal is Dog) { Dog dog = animal as Dog; dog.Name; ... } 对于变量Animal animal;。 是否有一些语法可以让我编写如下内容: if (Dog dog = animal as Dog) { dog.Name; ... }
142 c#  casting  if-statement 

16
if-else块中的“ if(0)”块的用途是什么?
我的问题是我在本主题中提到的那行,在生产代码中的许多地方都可以看到。 整体代码如下所示: if (0) { // Empty braces } else if (some_fn_call()) { // actual code } else if (some_other_fn_call()) { // another actual code ... } else { // default case } 其他分支与我的问题无关。我想知道放在if (0)这里的意思是什么。花括号是空的,所以我不认为它应该注释一些代码块。它会迫使编译器进行一些优化,还是其意图有所不同? 我试图在SO和Internet上搜索这种明显的情况,但是没有成功。关于JavaScript,也有类似的问题,但不是C。还有另一个问题,如果在“ if”条件中分配零,会发生什么?,但它讨论了变量的零赋值,而不是'if(0)'用法本身。
141 c  if-statement 

14
一行if-condition-assignment
我有以下代码 num1 = 10 someBoolValue = True 我需要将to的值设置num1为20if someBoolValueis True; 否则就什么也不做。所以,这是我的代码 num1 = 20 if someBoolValue else num1 有什么办法可以避免...else num1使它看起来更干净的部分吗?相当于 if someBoolValue: num1 = 20 我尝试将其替换为...else pass:num1=20 if someBoolValue else pass。我所得到的只是语法错误。我也不能忽略这一...else num1部分。

8
更好地“尝试”某些东西并捕获异常或测试是否有可能首先避免异常?
我应该测试if某种东西是有效的还是只是try为了做它并捕获异常? 有没有可靠的文档说首选方法? 还有一种方法更pythonic吗? 例如,我应该: if len(my_list) >= 4: x = my_list[3] else: x = 'NO_ABC' 要么: try: x = my_list[3] except IndexError: x = 'NO_ABC' 一些想法... PEP 20说: 错误绝不能默默传递。 除非明确地保持沉默。 应该使用a try而不是an if解释为无声传递的错误吗?如果是这样,您是否通过以这种方式使用它来明确使其静音,从而使其正常运行? 我不是指只能以一种方式做事的情况;例如: try: import foo except ImportError: import baz

9
&&(AND)和|| (OR)在IF语句中
我有以下代码: if(!partialHits.get(req_nr).containsKey(z) || partialHits.get(req_nr).get(z) < tmpmap.get(z)){ partialHits.get(z).put(z, tmpmap.get(z)); } partialHitsHashMap 在哪里。如果第一个陈述为真会怎样? Java还会检查第二条语句吗?因为为了使第一条语句为真,所以HashMap不应包含给定的键,因此如果选中了第二条语句,我将得到NullPointerException。 简单来说,如果我们有以下代码 if(a && b) if(a || b) Java将在第一种情况下检查b是否a为false,a在第二种情况下是否为true?
137 java  if-statement 

9
一次性写“ if”的最优雅方式
由于C ++ 17可以编写一个if块,该块将被完全执行一次,如下所示: #include <iostream> int main() { for (unsigned i = 0; i < 10; ++i) { if (static bool do_once = true; do_once) { // Enter only once std::cout << "hello one-shot" << std::endl; // Possibly much more code do_once = false; } } } 我知道我可能对此有过多的思考,还有其他方法可以解决此问题,但是仍然-是否可以这样写,所以do_once = false最后不需要了吗? …
136 c++  if-statement  c++17 

8
如何使用if-批处理文件中的else结构?
我对是否-批处理文件中的其他结构有疑问。每个命令都单独运行,但是我不能安全地使用“ if-else”块,因此程序的这些部分无法正常工作。如何使这些零件运行?谢谢。 IF %F%==1 IF %C%==1 ( ::copying the file c to d copy "%sourceFile%" "%destinationFile%" ) ELSE IF %F%==1 IF %C%==0 ( ::moving the file c to d move "%sourceFile%" "%destinationFile%" ) ELSE IF %F%==0 IF %C%==1 ( ::copying a directory c from d, /s: boş olanlar hariç, /e:boş …

10
在Thymeleaf中如何if-else?
怎样做一个简单的最好办法if- else在Thymeleaf? 我想在Thymeleaf中实现与 <c:choose> <c:when test="${potentially_complex_expression}"> <h2>Hello!</h2> </c:when> <c:otherwise> <span class="xxx">Something else</span> </c:otherwise> </c:choose> 在JSTL中。 到目前为止,我发现: <div th:with="condition=${potentially_complex_expression}" th:remove="tag"> <h2 th:if="${condition}">Hello!</h2> <span th:unless="${condition}" class="xxx">Something else</span> </div> 我不想评估potentially_complex_expression两次。这就是为什么我引入局部变量的原因condition。不过,我还是不喜欢同时使用th:if="${condition}和th:unless="${condition}"。 重要的是,我使用了两个不同的HTML标签:假设h2和span。 您能建议一种更好的方法吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.