JavaScript 练习逻辑运算符(不起作用)



我正在学习JavaScript课程,有一个关于逻辑运算符的练习不太好用。问题是:

使用刚刚学习的逻辑运算符,编写一个表达式代表以下声明:"我想要一个冰淇淋草莓巧克力或stracciatella,或任何冰淇淋除了焦糖味。">

我已经写了这两个脚本版本,但根据课程,其中任何一个都是正确的:

版本1:

var chocolate;
var strawberry;
var stracciatella;
var caramel;
var iceCream = ((strawberry && stracciatella != (caramel)) || (strawberry && chocolate != (caramel)) || (chocolate && stracciatella != (caramel)));

版本2:

var chocolate;
var strawberry;
var stracciatella;
var caramel;
var iceCream = ((strawberry && stracciatella) || (strawberry && chocolate) || (chocolate && stracciatella) != (caramel));

我真的不知道出了什么问题,但是。也许我没有正确理解这个问题,所以如果社区里有人帮我解决这个问题,我会非常感激。

逻辑运算符的优先级:

  1. 不是:
  2. 比较运算符:===,>,<,>=<
  3. AND:&amp
  4. 或:||

如果我们将此优先级应用于"草莓和巧克力或stracciatella"这一语句,那么冰淇淋应该有此任务。

var iceCream = ((strawberry && chocolate) || stracciatella) || !caramel;

但答案并不正确。提示是…

你考虑过草莓和stracciatella吗?

这里有一个例子,它根据您所击败的结果返回true。但如果你愿意,我可以给你看一个功能,只需要冰的香水。

const iceFlavour = ['chocolate', 'strawberry', 'stracciatella','caramel']
var iceCream = (((iceFlavour[1] && iceFlavour[2]) !== 'caramel') ||
((iceFlavour[0] && iceFlavour[1]) !== 'caramel') ||
(iceFlavour[0] || iceFlavour[1] || iceFlavour[2] !== 'caramel'))
console.log(iceCream)

首先,您说的"!=焦糖"不是一个逻辑运算符,而是一个比较运算符,因此"!=焦焦糖"在任务上下文中不起作用。

它应该是"&&!焦糖"。

此外,您没有为变量分配任何值,这将使表达式导致"未定义";试着给他们每个人一个值,比如"让巧克力=巧克力",或者一个布尔值,比如"让巧克力=真"one_answers"让焦糖=假"。

希望这能给你一些指导。

你可以在这里阅读更多关于逻辑运算符的信息:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators

问题和代码都有几个问题。我会一个接一个地对付他们。

首先,这个问题不清楚它指的是哪种情况

案例1

我想要一个加(草莓和巧克力(或stracciatella 的冰淇淋

案例2

我想要一份草莓冰淇淋和(巧克力或stracciatella(

草莓和stracciatella冰淇淋在情况1中是不正确的,但在情况2中是正确的。

现在关于您的代码,您的变量是未设置的,更准确地说是"undefined",这使得它们在任何逻辑运算中都被求值为False。在这个例子中,你应该将它们设置为true或false,然后改变这些值来查看逻辑的结果。

在您的逻辑中,您使用的是!=运算符,而不仅仅是!。不同之处在于,您使用!=进行比较,而使用!来描述值。

示例1:one != two,评估为true(假设one = 1two = 2(

示例2:!truth将显示false(假定为truth = true(

所以在你的代码中你需要

  • 为变量赋值(true/false(
  • !=运算符更改为!

这是固定的代码,尝试通过更改味道的值来进行实验,看看会发生什么

var chocolate = true;
var strawberry = false;
var stracciatella = true;
var caramel = true;
// case 1
var icecream = ((strawberry && chocolate) || stracciatella) || !caramel;
console.log("case 1:" + icecream);
// case 2
var icecream = (strawberry && (chocolate || stracciatella)) || !caramel;
console.log("case 2:" + icecream);

我建议看看Python逻辑运算符是如何工作的。在python中,单词而不是符号用于逻辑运算符,因此&&AND||OR!NOT!=NOT EQUAL等。通过查看它,我们会更清楚、更容易理解,因为python在这些语句中使用了最少量的符号,并允许这些操作的措辞与我们在说话时描述的一样。

相关内容

  • 没有找到相关文章

最新更新