高中水平西班牙语1和2翻译错误(使用 labs.codeacademy.com 制作)

High school level Spanish 1 & 2 translator bug(made using labs.codeacademy.com)

本文关键字:labs 使用 codeacademy com 制作 错误 西班牙语 水平 翻译 高中      更新时间:2023-09-26

我正在制作高中水平的西班牙语 1 和 2 翻译器,但我遇到了一个错误;在提示您输入单词后,它不会只为您提供翻译,而是打印出整个翻译列表。

我正在使用从网站获得的基本 Java 知识 Codeacademy.com,无法弄清楚导致此错误的原因。

附言如果您能帮助我使 if 语句的此过程更容易、更快捷,我将不胜感激。

法典:

var word = prompt("Word to translate(lower case only):");
//English
var hi;
var white;
//Translate
var hola = hi;
var blanco = white;
var translate = function(word)
{
    return word;
};
//Spanish to English
if(translate() === hola)
{
    console.log("hi");
}
if(translate() === blanco)
{
    console.log("white");
}
//English to Spanish
if(translate() === hi)
{
    console.log("hola");
}
if(translate() === white)
{
    console.log("blanco");
}

你应该复习一下对变量和函数的理解。你正在做两件看似混乱的事情。

首先,下面的代码将所有变量设置为 undefined ,因此它们都相等:

var hi;
var white;
var hola = hi;
var blanco = white;

你应该使用像 var hi = "hi"; 这样的语句,它将变量的值hi设置为字符串"hi"

其次,当你调用你的translate函数时,你需要给它传递一个变量,因为你把它定义为接受一个变量word。所以你会说translate("hi")例如。你还需要让你的translate函数实际做一些事情。现在,它只返回传递给它的相同字符串。


以下是根据本课程使用您可能应该熟悉的更简单的技术的解决方案。对于这类问题,有更复杂的解决方案,但我认为它们超出了这里的范围。

Codeacademy 在教学方面做得很好,所以你应该再次复习一下材料,以了解你做错了什么。祝你好运!

// English
var hi = "hi";
var white = "white";
// Spanish
var hola = "hola";
var blanco = "blanco";
var translate = function(word)
{
    // Spanish to English
    if (word === hola)
        console.log(hi);
    else if (word === blanco)
        console.log(white);
    // English to Spanish
    else if (word === hi)
        console.log(hola);
    else if (word === white)
        console.log(blanco);
};
// Ask for word
var word = prompt("Word to translate(lower case only):");
// Run translation
translate(word);

演示:http://jsfiddle.net/W8eFp/1(我的演示使用 alert 而不是 console.log.您可以单击顶部的"向上运行"以再次运行提示。