javascript://8种方法根据分数判断等级
2019-03-22 本文已影响41人
專屬戀人
编写一个函数,根据输入的分数,返回对应的等级
(注:只需要关注核心逻辑,不需要考虑输入分数是否是数字,默认是数字)
1.若分数大于100分或分数小于0分,返回<无效分数>
2.若分数大于或等于0分,小于60分,返回<不及格>
3.若分数大于等于60分,小于70分,返回<及格>
4.若分数大于等于70分,小于80分,返回<一般>
5.若分数大于等于80分,小于90分,返回<良好>
6.若分数大于等于90分,小于100分,返回<优秀>
7.若分数等于100分,返回<真棒>
方法一
function ScoreLevel(socre){
if(score < 0 || score > 100){
return '无效分数';
}else if(score >= 0 && score < 60){
return '不及格';
}else if(score >= 60 && score < 70){
return '及格';
}else if(score >= 70 && score < 80){
return '一般';
}else if(score >= 80 && score < 90){
return '良好';
}else if(score >= 90 && score < 100){
return '优秀';
}else if(score == 100){
return '真棒';
}
}
分析:小学生编程入门指南。
方法二
function ScoreLevel(score){
if(score < 0 || score > 100){
return '无效分数';
}else{
if(score >= 0 && score < 60){
return '不及格';
}else{
if(score >= 60 && score < 70){
return '及格';
}else{
if(score >= 70 && score < 80){
return '一般';
}else{
if(score >= 80 && score < 90){
return '良好';
}else{
if(score >= 90 && score < 100){
return '优秀';
}else{
if(score == 100){
return '真棒';
}
}
}
}
}
}
}
}
分析:自闭型剥洋葱障碍症。
方法三
function ScoreLevel(score){
if(score < 0 || score > 100){
return '无效分数';
}
if(score >= 0 && score < 60){
return '不及格';
}
if(score >= 60 && score < 70){
return '及格';
}
if(score >= 70 && score < 80){
return '一般';
}
if(score >= 80 && score < 90){
return '良好';
}
if(score >= 90 && score < 100){
return '优秀';
}
if(score == 100){
return '真棒';
}
}
分析:论return提前中断的妙处,逻辑更清晰。
方法四
function ScoreLevel(score){
if(score < 0 || score > 100){
return '无效分数';
}
if(score >= 0 && score < 60){
return '不及格';
}
if(score >= 60 && score < 70){
return '及格';
}
if(score >= 70 && score < 80){
return '一般';
}
if(score >= 80 && score < 90){
return '良好';
}
if(score >= 90 && score < 100){
return '优秀';
}
return '真棒';
}
分析:方法三节省几个字符之返回默认值变体版。
方法五
function ScoreLevel(score){
if(score < 0 || score > 100){
return '无效分数';
}
if(score < 60){
return '不及格';
}
if(score < 70){
return '及格';
}
if(score < 80){
return '一般';
}
if(score < 90){
return '良好';
}
if(score < 100){
return '优秀';
}
return '真棒';
}
分析:继续节省字符,利用代码的,顺序执行特性+数字大小特征+return中断。
方法六
function ScoreLevel(score){
if(score < 0 || score > 100){
return '无效分数';
}
switch(Math.floor(score / 10)){
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
return '不及格';break;
case 6:
return '及格';break;
case 7:
return '一般';break;
case 8:
return '良好';break;
case 9:
return '优秀';break;
default:
return '真棒';break;
}
}
分析:switch版,利用十位数特性+break中断。
方法七
function ScoreLevel(score){
score = Math.floor(score / 10);
if(score < 6){
return '不及格';
}
if(score == 6){
return '及格';
}
if(score == 7){
return '一般';
}
if(score == 8){
return '良好';
}
if(score == 9){
return '优秀';
}
if(score == 10){
return '真棒';
}
return '无效分数';
}
分析:方法五+方法六的杂交版,大于,小于变等于版。
方法八
function ScoreLevel(score){
return (score < 0 || score > 100) ? '无效分数' : {6:'及格',7:'一般',8:'良好',9:'优秀',10:'真棒'}[~~(score / 10)] || '不及格';
}
分析: 不折腾了,一行代码终极版,利用json对象取值特性+(? :)三元运算符
结语
感谢您的观看,如有不足之处,欢迎批评指正。
获取资料👈👈👈
本次给大家推荐一个免费的学习群,里面概括移动应用网站开发,css,html,webpack,vue node angular以及面试资源等。
对web开发技术感兴趣的同学,欢迎加入Q群:👉👉👉147076513👈👈👈,不管你是小白还是大牛我都欢迎,还有大牛整理的一套高效率学习路线和教程与您免费分享,同时每天更新视频资料。
最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。