关键是
str[n]==alphabet[i]&&i+5<=25  是       true  flase; switch(str[n])          str[n] 是字符。

解决方案 »

  1. case str[n]==alphabet[i]&&i+5<=25:
            newStr[n]=alphabet[i+5];case后面都直接是值了,你怎么能在这里判断呢。case是判断str[n]是不是等于case后面的值,才执行相关的case语句你这里可好,直接在case后面做起了赋值语句。
      

  2.     var str = prompt("请输入要加密的字符串:").split("");    var newStr = [];    var alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];    for (var n = 0; n <= str.length; n++)
            for (var i = 0; i <= 25; i++)
                switch (str[n]) {
                case str[n] == alphabet[i] && i + 5 <= 25 ? newStr[n] = alphabet[i + 5] : false: break;
                case str[n] == alphabet[i] && i + 5 > 25 ? newStr[n] = alphabet[i + 5 - 26] : false:
            }    alert("加密后的新字符串是:" + newStr.join(""));用?:  3元运算符来实现,不过代码维护起来有够恶心的
      

  3. switch(str[n]==alphabet[i]){
          case i+5<=25:
          newStr[n]=alphabet[i+5];
          break;
          case i+5>25:
          newStr[n]=alphabet[i+5-26];
          }
      

  4. 你想搞成switch,就这样。
    <script type="text/javascript">
    var str = ['e','w','y']; var newStr = [];
    var alphabet=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]; for ( var n = 0; n <= str.length; n++) { for ( var i = 0; i <= 25; i++) { if (str[n] == alphabet[i]) {
    switch(i + 5 <= 25){
    case true: newStr[n] = alphabet[i + 5];
    break; case false: newStr[n] = alphabet[i + 5 - 26];
    break;
    }
    }
    }

    }
    alert("加密后的新字符串是:" + newStr.join(""));
    </script>
      

  5. 就差最后一步了,现在程序可以识别大小写,但是还是不能识别标点符号和空格,请看完整代码:<script type="text/javascript">     var str = prompt("请输入要加密的字符串:").split("");     var newStr = [];
         //小写字母表
         var smallAlphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
          //大写字母表
          var capitalAlphabet=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","V","U","W","X","Y","Z"];
          for (var n=0; n <= str.length; n++)     for (var i=0; i<=25; i++)
            
         switch (true) {         case str[n] == smallAlphabet[i] && i+5<=25:         newStr[n] = smallAlphabet[i+5];              break;         case str[n] == smallAlphabet[i] && i+5 >25:
     
             newStr[n] = smallAlphabet[i+5-26];             break;         case str[n] == capitalAlphabet[i] &&i+5 <= 25:         newStr[n] = capitalAlphabet[i+5];             break;         case str[n] == capitalAlphabet[i] && i+5 >25:         newStr[n] = capitalAlphabet[i+5-26];             break;
             //如果str[]既不在小写字母表中,也不在大写字母表中
             case str[n]!=smallAlphabet[i]&&str[n]!=capitalAlphabet[i]:
             
             newStr[n]=str[n];                 break;
            
          }    alert("加密后的新字符串是:" + newStr.join(""));</script>
    如果去掉switch()中最后一段代码: //如果str[]既不在小写字母表中,也不在大写字母表中
     case str[n]!=smallAlphabet[i]&&str[n]!=capitalAlphabet[i]:       
     newStr[n]=str[n];     
    去掉这段代码程序能正常区分输入字母的大小写并加密,加上这段代码就出错,请列位老师给看看问题出在那里
      

  6. 你真顽固。
    你学会switch的用法,再来写写吧。
      

  7. 请看正确答案:<script type="text/javascript">  var str = prompt("请输入要加密的字符串:").split("");  var newStr = [];  var smallAlphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
     
      var capitalAlphabet=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","V","U","W","X","Y","Z"];
      for (var n=0; n < str.length; n++)
      loop_1: 
     
      for (var i=0; i<=25; i++)  switch (true) {    case str[n] == smallAlphabet[i] && i+5<=25:    newStr[n] = smallAlphabet[i+5];       break loop_1;    case str[n] == smallAlphabet[i] && i+5 >25:    newStr[n] = smallAlphabet[i+5-26];      break loop_1;    case str[n] == capitalAlphabet[i] &&i+5 <= 25:      newStr[n] = capitalAlphabet[i+5];    break loop_1;    case str[n] == capitalAlphabet[i] && i+5 >25:      newStr[n] = capitalAlphabet[i+5-26];    break loop_1;
        
        case str[n]!=smallAlphabet[i]&&str[n]!=capitalAlphabet[i]:      newStr[n]=str[n];             break;  }  alert("加密后的新字符串是:" + newStr.join(""));</script>
      

  8. 以上代码并不是我完成的,感谢huangjinhe007网友!
      

类似问题 »