Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在变量中写入我的答案?_Javascript_Switch Statement - Fatal编程技术网

Javascript 如何在变量中写入我的答案?

Javascript 如何在变量中写入我的答案?,javascript,switch-statement,Javascript,Switch Statement,我在编写动态代码时遇到问题。我正在学习一门javascript编程课程,在一项作业的最后一部分,我遇到了一些困难 练习8.2 使用默认值扩展switch case语句。结果应该是 当变量“myFruit”具有未知的 价值用“myFruit=pear”的结果回答 在下面写下你的代码,并将答案放入变量答案中 如何在变量中表述此结果 我试着这样写: var result = switch (myFruit); var result = mySwitchCase(myFruit); 但这不起作用。您

我在编写动态代码时遇到问题。我正在学习一门javascript编程课程,在一项作业的最后一部分,我遇到了一些困难

练习8.2

使用默认值扩展switch case语句。结果应该是 当变量“myFruit”具有未知的 价值用“myFruit=pear”的结果回答

在下面写下你的代码,并将答案放入变量答案中

如何在变量中表述此结果

我试着这样写:

var result = switch (myFruit);
var result = mySwitchCase(myFruit);

但这不起作用。

您可以将结果保存在变量
answer
中,然后使用该变量打印结果

function fruitSwitcher (myFruit) {
    var answer = "That is an unknown fruit.";
    switch (myFruit) {
      case "banana":
      answer = "The banana is yellow.";
      break;
      case "apple":
      answer = "The apple is green.";
      break;
      case "kiwi":
      answer ="The kiwi is green.";
      break;
      case "plum":
      answer = "The plum is purple";
      break;
      default: 
      // no really needed
      answer ="That is an unknown fruit.";
      break;
     }

     return answer;
}

var myFruit = "pear";
var answer = fruitSwitcher(myFruit);
console.log(answer); //That is an unknown fruit.

前面代码中的默认情况是多余的,因为变量
answer
已初始化为默认值。如果传入的输入中有一个未知的结果,则没有一个switch case与之匹配,因此,
answer
变量永远不会更改值,函数将返回默认值。

您可以声明
result
变量,并在switch语句case中,而不是
console.log
记录结果,您可以将值分配给
结果
变量,如下所示:

var myFruit = "pear";
var result;
switch (myFruit) {
  case "banana":
      result = "The banana is yellow.";
      break;
  case "apple":
      result = "The apple is green.";
      break;
  case "kiwi":
      result = "The kiwi is green.";
      break;
  case "plum":
      result = "The plum is purple";
      break;
  default:
      result = "That is an unknown fruit.";
      break;
}

我不会为您写出所有代码,但会为您指出正确的方向。您需要在变量中设置文本并返回它:

switch ..

    case "something":
        var message = "Your message here.";
        break;

...
一旦您的开关设置了该值,您就可以根据需要使用它


不能像操作一样使用switch语句从switch语句返回值。

不能像
var result=switch(myFruit)那样调用switch语句,它不是一个函数。您必须将所有开关箱代码移动到一个函数中:

function mySwitchCase(fruit){
    var returnResult='';
    switch (fruit) {
        case "banana":
           returnResult="The banana is yellow.";
            break;
        case "apple":
            returnResult="The apple is green.";
            break;
        case "kiwi":
            returnResult"The kiwi is green.";
            break;
        case "plum":
            returnResult"The plum is purple";
            break;
        default:
            returnResult"That is an unknown fruit.";
            break;
    }
    return returnResult;
}
然后你可以这样称呼它:

var result = switch (myFruit);
var result = mySwitchCase(myFruit);

请解释您的答案,不要只转储代码我更新答案,顺便说一句,这只是一个开关语句。为什么不需要默认情况?因为变量
answer
已初始化为默认值。如果您传入一个未知的结果,则所有开关大小写都不匹配,结果值是默认值。既然练习特别提到要添加默认大小写,为什么要初始化变量?这是多余的。你想让他自己学习很好,但我认为堆栈溢出不是一个完美的地方。堆栈溢出是具有相同或类似问题的其他用户可以找到解决方案的地方。