关键是
str[n]==alphabet[i]&&i+5<=25 是 true flase; switch(str[n]) str[n] 是字符。
str[n]==alphabet[i]&&i+5<=25 是 true flase; switch(str[n]) str[n] 是字符。
解决方案 »
- jquery怎么得到a标签
- 如何把覆盖在弹出大图上的小图去掉
- 多个div嵌套时onmouseover和onmouseout事情乱了
- 用js如何获取asp.net中radiobuttonlist中的文本值?
- 高分求助:javascript读xml文件实现地区联动!分不够可在加!
- 有用easyui validatebox验证表单的吗?用这个如何验证radio,checkbox啊
- 分享一下JS写的抽奖功能-可以用于现场、公司内部活动的抽奖
- 求助在javascript的Unload()事件里调用一段JSP代码或包含一个JSP的页面方法
- 简单的问题,可我不会,请问如何从文本框获得数据?在线等答,谢谢
- 我想在按钮的onclick事件中实现next表单的传递,怎么做呢!高手帮帮忙??
- json节点问题
- 求:js随机生成0-51之间30个不同的数字
newStr[n]=alphabet[i+5];case后面都直接是值了,你怎么能在这里判断呢。case是判断str[n]是不是等于case后面的值,才执行相关的case语句你这里可好,直接在case后面做起了赋值语句。
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元运算符来实现,不过代码维护起来有够恶心的
case i+5<=25:
newStr[n]=alphabet[i+5];
break;
case i+5>25:
newStr[n]=alphabet[i+5-26];
}
<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>
//小写字母表
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];
去掉这段代码程序能正常区分输入字母的大小写并加密,加上这段代码就出错,请列位老师给看看问题出在那里
你学会switch的用法,再来写写吧。
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>