if else 语句中的问题

问题描述

我需要帮助来解决我遇到的这个问题。我已经在 stackoverflow 中遇到了几个可用的问题,但我仍然不明白。

这是我写的代码

var myFeedback = ""
      if (this.userFriendlinessrating <= 4.0 && this.userFriendlinessrating >= 3.5){
        myFeedback = 'VERY SATISFIED' 
        return myFeedback;
      } else if (this.userFriendlinessrating <= 3.5 && this.userFriendlinessrating >= 2.5){
        myFeedback = 'SATISFIED' 
        return myFeedback;
      } else if (this.userFriendlinessrating <=2.5 && this.userFriendlinessrating >=1.5){
        myFeedback = 'NOT SATISFIED' 
        return myFeedback;
      } else {
        myFeedback = 'VERY NOT SATISFIED' 
        return myFeedback;
      }
      console.log(myFeedback)

这是我得到的错误

unreachable code

解决方法

每个with iLevel(iVersion,iRelease) as ( select OS_VERSION,OS_RELEASE from sysibmadm.env_sys_info ) select case PTF_GROUP_CURRENCY when 'INSTALLED LEVEL IS CURRENT' then '' else PTF_GROUP_CURRENCY end,PTF_GROUP_ID "ID",PTF_GROUP_TITLE "Title",PTF_GROUP_LEVEL_INSTALLED "Installed",PTF_GROUP_LEVEL_AVAILABLE "Available",ptf_group_level_available - ptf_group_level_installed "Diff",date(to_date(PTF_GROUP_LAST_UPDATED_BY_IBM,'MM/DD/YYYY')) "Available since",current date - date(to_date(PTF_GROUP_LAST_UPDATED_BY_IBM,'MM/DD/YYYY')) "Days since available",PTF_GROUP_RELEASE "Release",PTF_GROUP_STATUS_ON_SYSTEM "Status" from iLevel,systools.group_ptf_currency P where ptf_group_id = 'SF99703' order by ptf_group_level_available - ptf_group_level_installed desc; 部分和最后一个if都包含else,所以控件不能通过return结构。因此最后的 if-elseif-elseif-else 行无法访问。

删除所有内部 console.Log 语句并在末尾添加一个以达到您的目的:

return
,

如果你想访问控制台日志,你应该像这样重构,所以最后一行是可达的。

var myFeedback = ""
if (this.userFriendlinessRating <= 4.0 && this.userFriendlinessRating >= 3.5){
  myFeedback = 'VERY SATISFIED' 
} else if (this.userFriendlinessRating <= 3.5 && this.userFriendlinessRating >= 2.5){
  myFeedback = 'SATISFIED' 
} else if (this.userFriendlinessRating <=2.5 && this.userFriendlinessRating >=1.5){
  myFeedback = 'NOT SATISFIED' 
} else {
  myFeedback = 'VERY NOT SATISFIED' 
}
console.log(myFeedback)
return myFeedback;
,

您必须为 myFeedback 变量的决定传递一个返回值,并且该返回值应放在最后。 请参阅下面的示例大纲

      var obj = ""

      if (cond){
        obj = 'VERY SATISFIED' 
      } else if (cond){
        obj = 'SATISFIED' 
      } else if (cond){
        obj = 'NOT SATISFIED' 
      } else {
        obj = 'VERY NOT SATISFIED' 
      }
      console.log(obj)
      return obj;