You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Code.org应用中if-else判断异常:始终显示'wrong'如何修复?

问题分析与修复方案

核心问题总结

你的代码存在几个关键问题导致无论猜测对错都显示"wrong":

  • 变量名拼写错误导致无法正确获取随机选中的歌曲
  • 未保存当前选中歌曲的排名信息,校验逻辑无明确对比目标
  • 遍历所有排名的校验逻辑会覆盖正确结果

具体问题与修复步骤

  1. 变量名拼写错误
    在updateScreen2()函数中,你使用了filterSongList和filterArtistList,但实际定义的变量是filteredSongList和filteredArtistList(多了"ed"后缀)。这会导致无法正确读取歌曲数据,甚至引发运行错误。

修复:将函数内的变量名修正为正确的filteredSongList和filteredArtistList。

  1. 未保存选中歌曲的排名
    当前代码选择随机歌曲后,没有记录该歌曲对应的排名,导致校验时无法针对当前显示的歌曲进行判断,而是遍历所有排名,最后一次循环的结果会覆盖之前的正确判断。

修复:添加全局变量selectedRank存储当前选中歌曲的排名,在updateScreen2()中完成赋值。

  1. 校验逻辑错误
    原代码遍历整个rankList,每一次循环都会更新文本框内容。即使找到匹配的排名,后续不匹配的循环会将文本重新设置为"wrong",最终显示的永远是最后一次循环的结果。

修复:直接对比用户猜测的排名和selectedRank,无需遍历整个列表。

  1. 冗余的过滤函数
    randomSongFunction()的逻辑是将所有歌曲复制到过滤列表,过滤条件永远为真,完全没有必要。可以简化逻辑,直接从原列表中随机选择歌曲。

修复:删除冗余的过滤函数,直接在updateScreen2()中处理随机选择逻辑。


修正后的完整代码

// 全局变量存储数据和选中的排名
var songList = getColumn("Viral 50 USA", "Track Name");
var artistList = getColumn("Viral 50 USA", "Artist");
var rankList = getColumn("Viral 50 USA", "Position");
var selectedRank; // 存储当前选中歌曲的排名

// 显示随机歌曲并保存其排名
function updateScreen2() {
  var index = randomNumber(0, songList.length - 1);
  setText("artistOutput", artistList[index]);
  setText("songOutput", songList[index]);
  selectedRank = rankList[index]; // 保存当前歌曲的排名
}

// 页面切换事件
onEvent("startButton", "click", function() {
  setScreen("screen2");
});
onEvent("yesButton", "click", function() {
  setScreen("screen3");
});
onEvent("noButton", "click", function() {
  setScreen("screen1");
});
onEvent("homeButton", "click", function() {
  setScreen("screen1");
});

// 选择随机歌曲按钮事件
onEvent("chooseButton", "click", function() {
  updateScreen2();
});

// 校验猜测结果按钮事件
onEvent("checkButton", "click", function() {
  var guessRankNum = getProperty("dropdown", "value");
  // 直接对比用户猜测和选中歌曲的排名
  if (guessRankNum == selectedRank) {
    setText("answerOutput", "correct!");
  } else {
    setText("answerOutput", "wrong");
  }
});

内容的提问来源于stack exchange,提问作者noemi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 13:45:14