判断闰年
刚进入JS的小伙伴,可以练习一些开发逻辑思维的小流程,今天分享两个适合萌新的练习小程序
注:因为是在node环境下运行,所以应该需要先获取客户输入
const rs = require("readline-sync");
判断闰年的流程
// 【判断范围内的闰年】
//声明变量
let start = true;//状态值
let maxNum = 0;//最大值
let minNum = 0;//最小值
let shuru;//输入之后的转态
// 判断执行代码
while (start) {
console.log(`请输入你要查询闰年的时间范围起始值:`);
let inp1 = rs.question() - 0;//输入第一个值
console.log(`请输入你要查询闰年的时间范围结束值:`);
let inp2 = rs.question() - 0;//输入第二个值
//判断第一个值输入回车同时第二个值为数值、或者第二个值输入回车同时第一个值为数值
//即:至少输入一个数值为最大值,此时另一个数值自动为0
if ((!isNaN(inp1) || inp1 == "") && !isNaN(inp2)) {//当第一个输入回车,第二个就一定为
shuru = true;
} else if ((!isNaN(inp2) || inp2 == "") && !isNaN(inp1)) {
shuru = true;
} else {
console.log("请输入有效数字(至少一个数,输入不能为负数)");
shuru = false;
}
if (shuru) {
inp1 > inp2 ? (maxNum = inp1, minNum = inp2) : (maxNum = inp2, minNum = inp1);//判断最大值与最小值
for (let i = minNum; i <= maxNum; i++) {//循环判断范围内的年份
if ((i % 400 == 0) || (i % 4 == 0 && i % 100 != 0)) {//闰年判断条件
//三目运算判断是否为0,输出对应内容
i==0?console.log("请输入有效数字(至少一个数,输入不能为负数和0)"):console.log(`${i}年 是闰年`);
// 无论用户输入什么,都结束当次while循环(结束当次判断闰年程序)
start = false;
}
}
}
}
九九乘法表
// 【9*9乘法表】
for (let i = 1, num1 = ""; i <= 9; i++,num1 = "") {//外层循环创建变量接收每一行的算式,且每次都初始化num1内容为空
for (let j = 1, num2 = ""; j <= i; j++) {//内层循环创建变量接收每一个算式
num1 +=(num2 = (`${i}*${j}` + "=" + i * j+" "));//内循环每一次的算式都赋值相加给外循环创建的num1,要注意的是,是进行字符串模板的拼接
}
console.log(num1);//此时输出每一行(9行),就会得到乘法表
}
两个练习都不难,为了更好的用户体验,需要考虑的细节稍微多一点。
判断闰年的逻辑重点在于,至少要用户输入一个数值为最大值(输入其他内容无效,如:字符型),当用户输入两个数值时要比较哪个是最大值,哪个是最小值,最后就是判断闰年的满足条件
乘法表的逻辑重点在于,肯定会有内外的循环嵌套分别得到乘号左右两边的数字进行动态变化,而之后要想得到的对应算式在一行显示,那么肯定是在外层循环打印每一行的结果,因为外层循环是每行不变的乘号左侧数值