今天开始整理第二部分的JavaScript小案例,本来我打算一篇文章都整理出来,不过我自己搜索的时候发现,如果有小伙伴搜索到其中一个题的关键字,如果在下面,就非常难找。
比如这篇文章有100个案例,有小伙伴搜其中的第67题,这样进来就非常难找,所以我决定以后每篇文章定 5个案例 。
方便大家的时候,我也轻松点,如果小弟的文章对您提供帮助的话,记得点个赞哦!
话不多说,上今天的干货!
话不多说,上今天的干货!
话不多说,上今天的干货!
案例一:(6种方法) 比较两个数的最大值
// - 题目描述:用户依次输入2个值,最后弹出最大的那个值
// - 题目提示:通过比较运算符弹出最大值
6种方法的思路分别是:
方法一:使用 if 语句,理想状态下简单判断
方法二:使用三元表达式,完成相应效果
方法三:使用switch 退出用的switch 的定义,这一点如果理解好了,switch后面肯定就没啥问题
下面三种是建立在非理想状态下,就是判断用户输入的是否是数字,也更加接近工作中的开发环境
方法四:升级版 加入了一个循环 可以判断如果不是数字需要重新输入 也可以一直比较
方法五:使用 isNaN 判断是否输入的是数字
方法六:使用 number() 进行字符串的强行转化成数字型
补充说明:后面三种方法用的方法是后面两天的知识,大家可以预习后再来灵活运用
// 方法一 用if 语句
var num1 = +prompt('请输入第一个值:')
var num2 = +prompt('请输入第二个值:')
if (num1 > num2) {
alert('两个数的较大的一个为:' + num1)
} else {
alert('两个数的较大的一个为:' + num2)
}
// 方法二 用三元表达式
var num1 = +prompt('请输入第一个值:')
var num2 = +prompt('请输入第二个值:')
var max = num1 >= num2 ? num1 : num2;
alert('两个数的较大的一个为:' + max)
// 方法三 用switch 做 退出用的switch定义 参考老叶的ATM机
var num1 = +prompt('请输入第一个值:')
var num2 = +prompt('请输入第二个值:')
var flag = true;
switch (flag) {
case num1 > num2:
alert('两个数的较大的一个为:' + num1)
break;
case num1 <= num2:
alert('两个数的较大的一个为:' + num2)
break;
default:
break;
}
//方法四 升级版 加入了一个循环 可以判断如果不是数字需要重新输入 也可以一直比较
var flag = true;
while (flag) {
var num1 = +prompt('请输入第一个值:')
var num2 = +prompt('请输入第二个值:')
switch (flag) {
case num1 > num2:
alert('两个数的较大的一个为:' + num1)
flag = false;
break;
case num1 <= num2:
alert('两个数的较大的一个为:' + num2)
flag = false;
break;
default:
alert('您的输入有误,请重新输入数字!')
break;
}
}
// 方法五
var flag = true;
while (flag) {
var num1 = +prompt('请输入第一个值');
var num2 = +prompt('请输入第二个值');
// console.log(typeof num1);
// if (!isNaN(num1) == true && !isNaN(num2) == true) {
if (!isNaN(num1) && !isNaN(num1)) {
// console.log(num1);
if (num1 > num2) {
alert('您输入最大的数值为:' + num1);
flag = false;
} else {
alert('您输入最大的数值为:' + num2);
flag = false;
}
} else {
alert('请输入正确的数值');
continue;
}
}
// 方法六
var num1 = prompt('请输入第一个值');
var num2 = prompt('请输入第二个值');
console.log(Number(num1), Number(num2));
if (Number(num1).toString() == NaN.toString() || Number(num2).toString() == NaN.toString()) {
alert('NOT OK')
} else {
if (num1 > num2) {
alert('两个值较大的一个为' + num1)
} else {
alert('两个值较大的一个为' + num2)
}
}
// ### 3 - 判断奇偶性
// - 题目描述:
// 用户输入一个数,判断是奇数还是偶数
// 方法一 用if 语句
var num = +prompt('请输入一个数字:')
if (num % 2 == 0) {
alert('这是一个偶数')
} else {
alert('这是一个奇数')
}
// 方法二 用三元表达式
var num = +prompt('请输入一个数字:')
var re = num % 2 == 0 ? '偶数' : '奇数';
alert('这是一个' + re)
// 方法三 用switch 做 退出用的switch定义 参考老叶的ATM机
var num = +prompt('请输入一个数字:')
switch (num % 2) {
case 0:
alert('这是一个偶数');
break;
case 1:
alert('这是一个奇数数');
break;
default:
alert('输得什么玩意儿');
break;
}
// 方法三升级 加上while 让它判断持续输出 想出去 可以让flag 为false
var flag = true;
while (flag) {
var num = +prompt('请输入一个数字:')
switch (num % 2) {
case 0:
alert('这是一个偶数');
flag = false;
break;
case 1:
alert('这是一个奇数数');
flag = false;
break;
default:
alert('输得什么玩意儿,重新输!');
break;
}
}
案例二:(3种方法) 请客吃饭
// 接收班长口袋里的钱数?
// 若大于等于2000,请大家吃西餐。
// 若小于2000,大于等于1500,请大家吃快餐。
// 若小于1500,大于等于1000,请大家喝饮料。
// 若小于1000,大于等于500,请大家吃棒棒糖。
// 否则提醒班长下次把钱带够
三种方法的思路:
1、常规 if 语句
2、switch 进行改写
3、三元表达式 双层嵌套
// 方法一 常规的if语句
var monitorMoney = +prompt('班长口袋中有多少钱:')
if (2000 <= monitorMoney) {
alert('班长:我请大家吃西餐!')
} else if (1500 <= monitorMoney) {// 有个注意点 不能够写成(1500 <= monitorMoney < 2000) 但是可以写成 (1500 <= monitorMoney && monitorMoney< 2000)
alert('班长:我请大家吃快餐!')
} else if (1000 <= monitorMoney) {
alert('班长:我请大家喝饮料!')
} else if (500 <= monitorMoney) {
alert('班长:我请大家吃棒棒糖!')
} else if (monitorMoney < 500) {
alert('哪怕身上无分文,也要花呗度佳人!')
}
// 方法二
var monitorMoney = +prompt('班长口袋中有多少钱:')
if (monitorMoney > 0) {
var num1 = parseInt(monitorMoney / 500)
switch (num1) {
case 0:
alert('哪怕身上无分文,也要花呗度佳人!')
break;
case 1:
alert('班长:我请大家吃棒棒糖!')
break;
case 2:
alert('班长:我请大家喝饮料!')
break;
case 3:
alert('班长:我请大家吃快餐!')
break;
default:
alert('班长:我请大家吃西餐!')
break;
}
} else {
alert('你真是个老穷批')
}
// 方法三 如果非要用三元表达式,也能做,不过在if中嵌套,而且得用两次三元,毕竟一次三元只出两个结果,而且三元出的是个值,还得用取整 不推荐 大家可以自己摸索一下, 也可以给我留言大家一块整整
案例三:(2种写法)接收用户输入的用户名和密码
如用户名为admin,密码为123456,则提示用户登录成功,如果不正确,提示账号或者密码错误请从新输入再次输入密码
方法一:三元表达式双层嵌套 (看看这个案例,可以加深对于三元表达式的理解)
方法二:正常三元表达式 + 逻辑与运算符
var myName = prompt('请输入用户名:')
var password = prompt('请输入密码:')
var re = myName == 'asd' ? (password == '123' ? '成功登录' : '密码错误') : '密码名错误'
console.log(re);
alert(re)
// 方法二 三元运算符 判断两个条件
var name = prompt('请输入姓名')
var password = prompt('请输入密码')
var result = name == 'aaa' && password == '123' ? 'ok' : 'not ok'
console.log(result);
alert(result)
案例四 :(4种写法) 分数转换,给一个分数,判定等级。大于等于90 A,大于等于80小于90 B,大于等于70小于80 C ,大于等于60小于70 D,小于60 E
方法一:常规 if 写法
方法二:升级版 加了一个循环 ,更加熟练循环
方法三:用switch 做 多写几个case 理想状态下 输入的是分数,直接转成数字型
方法四 升级版 把所有因素都考虑进去 是不是数字,需不需要循环,多次查询 怎样退出
// 方法一 常规
var score = prompt('请输一个分数:')
if (0 <= score && score <= 100) {
if (score >= 90) {
alert('您的等级是A')
} else if (score >= 80) {
alert('您的等级是B')
} else if (score >= 70) {
alert('您的等级是C')
} else if (score >= 60) {
alert('您的等级是D')
} else {
alert('您的等级是E')
}
} else {
alert('您的输入有误,青重新输入')
}
// 方法一 升级版
var flag = true;
while (flag) {
var score = prompt('请输一个分数:\n 如果退出请输入:退出')
if (0 <= score && score <= 100) {
if (score >= 90) {
alert('您的等级是A')
} else if (score >= 80) {
alert('您的等级是B')
} else if (score >= 70) {
alert('您的等级是C')
} else if (score >= 60) {
alert('您的等级是D')
} else {
alert('您的等级是E')
}
} else if (score == '退出') {
flag = false;
} else {
alert('您的输入有误,青重新输入')
}
}
// 方法三 用switch 做 多写几个case 理想状态下 输入的是分数,直接转成数字型
var score = +prompt('请输一个分数:\n 如果退出请输入:退出')
var num = parseInt(score / 10)
switch (num) {
case 10:
alert('您的等级是A')
break;
case 9:
alert('您的等级是A')
break;
case 8:
alert('您的等级是B')
break;
case 7:
alert('您的等级是C')
break;
case 6:
alert('您的等级是D')
break;
default:
alert('您的等级是E')
break;
}
// 方法四 升级版 把所有因素都考虑进去 是不是数字,需不需要循环,多次查询 怎样退出
var flag = true;
while (flag) {
var score = prompt('查询器\n 请输一个分数:\n 如果退出请输入:退出')
if (0 <= score && score <= 100) {
var num = parseInt(score / 10)
switch (num) {
case 10:
alert('您的等级是A')
break;
case 9:
alert('您的等级是A')
break;
case 8:
alert('您的等级是B')
break;
case 7:
alert('您的等级是C')
break;
case 6:
alert('您的等级是D')
break;
default:
alert('您的等级是E')
break;
}
} else if (score == '退出') {
flag = false;
} else {
alert('您的输入有误,青重新输入')
}
}
案例五:(2种写法)
抽奖活动 幸运数字是6 用户有三次机会 三次之内输入6 则提示恭喜中奖不在弹出,三次都没成功 则失败
方法一:不用循环做 (锻炼一下我们的if逻辑能力)
方法二:用循环做 (if while do...while 三种循环大家可以都写一遍,初级多敲敲总是好的)
// 不用循环做
var lucky1 = prompt('你有三次机会,请输入数字');
if (lucky1 == 6) {
alert('恭喜你中奖')
} else if (lucky1 != 6) {
var lucky2 = prompt('你还有两次机会,请输入数字');
if (lucky2 != 6) {
var lucky3 = prompt('你只有一次机会,请输入数字');
if (lucky3 != 6) {
alert('非常遗憾')
} else {
alert('恭喜你中奖')
}
} else {
alert('恭喜你中奖')
}
}
// 用循环做
var lucky1 = prompt('你有三次机会,请输入数字');
for (var i = 2; i >= 1; i--) {
if (lucky1 == 6) {
alert('恭喜你中奖')
break;
} else {
var lucky3 = prompt('你还有' + i + '次机会,请输入数字');
}
}
今天就整理出来呢5个案例,如果对您有用的话,记得点个赞哦!
接下来还会更新各种实用小案例供大家参考练习,还有各种各样的解法,记得收藏一下哦!
谢谢谢谢~~~你~您~您~嘞~~