我已经看过很多关于这个主题的问题,但我仍然无法弄清楚以下是否是语义或逻辑错误。
假设我有以下Java代码:
<?php
class FixtureFactory
{
public function getNewTimeMock($hour, $minute, $second)
{
// code for creating the mock
}
}
您可能已经看到我可能想要记下boolean a = false;
if (a = false) System.out.println("yes");
else System.out.println("no");
而不是==
,但是:程序编译得很好并且运行没有错误。但是,它确实没有给我预期的结果。
我发现某处语义错误总是会产生错误(在编译或运行时),因此这必然是一个逻辑错误。但是,另一篇文章说语义错误并不总是会产生错误。因此问题是:上面的例子是否包含语义或逻辑错误?
答案 0 :(得分:-1)
通过编写以下表达式:a = false
您基本上分配一个值为false的变量,它可以正常工作并返回true作为成功操作,这就是为什么您将始终打印&#34; yes&#34;在控制台中。