一:倒三角
1.js逻辑思维
根据上一篇,我们已经可以做一个n行n列的星星了,而这篇准备做一个递减的方式,从而实现出逐层递减的效果
我们一开始的打印n行n列的代码如下:
var a = '';
for (var i = 1; i <= 5; i++) {
for (var b = 1; b <= 5; b++) {
a = a + '*';
}
a = a + '\n';
}
console.log(a);
效果如下:
递减的话,我们是不是可以转变一下思维方式,让内循环的那个变量等于外循环的变量,那样内循环随着外循环而变,例如我们随便打印一个,因为本人比较喜欢 9 这个数字,我们就打印一个九行九列的三角
代码如下:
var a='';
for (i = 1; i <= 9; i++) {
for (j = i; j <= 9; j++) {
a = a + '*';
}
a = a + '\n';
}
console.log(a);
代码跑起来,按下f12或者右键检查,控制台效果图如下:
是不是很简单。
2.经典案例:九九乘法表
看完了上面的倒三角,我们接着看一下九九乘法表,九九乘法表与上面的三角,原理相差不大,无非是一些细节问题
我们看一下做完后的效果图:
通过上面的三角案例,我们可以稍微做些修改,做一些修改,看看有什么好玩的:
上面是j = i; j <= 9; j++
我们是不是可以让i到后面来,j = 1; j <= i; j++
代码如下:
var a = '';
for (i = 1; i <= 9; i++) {
for (j = 1; j <= i; j++) {
a += j + 'x' + i + '=' + j * i + '\t';
}
a = a + '\n';
}
console.log(a);
其中
a = a + '\n';
a += j + 'x' + i + '=' + j * i + '\t';
这个是换行用的
我们来看效果图:
3.案例:简易计算器
我们写的这个计算器,可以用js简单实现一下功能
临着写这个功能之前,我们先了解掌握一下逻辑
根据下面这段代码,做一些了解
//逻辑运算符
// &&(与) ||(或) !(非)
//当两个值为布尔类型(短路运算)
// document.write(true&&true); //返回true
// document.write(true&&false); //返回true
// document.write(false&&false); //返回false
// document.write(false&&true); //返回true
/* var str = "name" && NaN;
console.log(str);
var str = "" && "hello";
console.log(str);
var str = "undefined" && "name";
console.log(str); */
//逻辑非 !是取反的意思
/* console.log(!""); //true
console.log(!0); //true
console.log(!null); //true
console.log(!undefined); //true
console.log(!NaN); //true
console.log(!{}); //false
console.log(!3); //false */
/*
console.log(1+2>2&&2+1>1); //true
console.log(false||true&&false); //false
console.log(1+2>1); //true
console.log(1+2!=2); //true
console.log(1+(2!=2)); //1 */
// 与:逻辑与运算,运算规则:
// 全一为一,有零为零。即只有两个操作数都为1时,结果才为1,其他情况均为0(也可以说,只要有0,结果就为 0)。
// 或:逻辑或运算,运算规则:
// 全零为零,有一为一。即只有两个操作数都为0时,结果才为0,其他情况均为1(也可以说,只要有1,结果就为1)。
// 非:逻辑非运算,仅有一个运算操作数,所以是一元逻辑运算。
// 运算规则:
// 一变零,零变一。即操作数为1时结果为0,操作数为0时结果为1。
// 异或(XOR)
// 逻辑异或运算,运算规则:相异为一,相同为零。即两个操作数不一样时结果为1,两个操作数相同时结果为0。
//
// 同或(XNOR)
// 逻辑同或运算,运算规则:相同为一,相异为零。与异或运算规则相
// 反。即两个操作数值相同时结果为1,两个操作数不一样时结果为0。
// 与非(NAND)
// 逻辑与非运算,运算规则:先与后非(全一为零,有零为一)。也就是将两个操作数先进行“逻辑与运算”,对与“运算结果值”再进行“逻
// 辑非运算”,产生最终的结果。
// 或非(NOR)
// 逻辑或非运算,运算规则:先或后非(全零为一,有一为零)。也就 是将两个操作数先进行“逻辑或运算”,对“或运算结果值”再进行“逻
// 辑非运算”,产生最终的结果。
看完上面这些,相信你对于这些有些掌握了
计算器的代码实现如下:
var a = +prompt("请输入第一个数字");
var b = prompt("请输入符号");
var c = +prompt("请输入第二个数字");
if (b === '+') {
alert(a +"+"+ c + "=" + (a + c));
}
else if(b==='-'){
alert(a +"-"+ c + "=" + (a - c));
}
else if(b==='*'){
alert(a +"*"+ c + "=" + (a * c));
}
else if(b==='/'){
alert(a +"/"+ c + "=" + (a / c));
}
实现效果如下:
看完之后,跟着敲一敲,相信你会有所成!!!