浅谈赋值运算符及几个示例脚本

浅谈赋值运算符及几个示例脚本


将等号右边的值存储到等号左边的变量中的运算符, 就叫赋值运算符。

  • 简单的赋值运算符: =
  • 复杂的赋值运算符: += -= *= /= %=

赋值运算符的优先级和结合性

  • 赋值运算符的优先级低于算术运算符
// 由于算术运算符的优先级要高于赋值运算符, 所以这里会先计算 1 + 1, 然后再赋值给res
let res = 1 + 1;
console.log(res);  // 2
  • 赋值运算符的结合性是右结合性(从右至左的运算)
// 由于赋值运算符的结合性是右结合性, 所以会先将 3 赋值给num2, 然后再将num2的值赋值给num1
let num1, num2;
num1 = num2 = 3;
console.log(num1);  // 3
console.log(num2);  // 3

简单的赋值运算符

  • 格式: 变量 = 数据
// 将等号右边的常量10赋值给左边的变量num
var num = 10;

// 将等号右边的变量num中存储的值赋值给左边的变量value
var value = num; 

复杂的赋值运算符

  • 格式: 变量 复合赋值运算符 表达式; 如: a *= 1 + 2;
  • 由于赋值运算符是右结合性, 所以会先计算等号右边, 然后再进行复合运算
// 会将等号左边存储的值取出来, 与等号右边的值进行指定的运算, 运算完毕之后再讲运算的结果存储到左边
var value = 5;
value *= 2 - 2; // 等价于  value = 5 * (2 - 2);
console.log(value); // 0
  • 复杂运算符的解释
+= 加后赋值--> 变量 += 表达式 如: a += 3;即 a = a + 3;

-= 减后赋值--> 变量 -= 表达式 如: a -= 3;即 a = a - 3;

*= 乘后赋值--> 变量 *= 表达式 如: a *= 3;即 a = a * 3;

/= 除后赋值--> 变量 /= 表达式 如: a /= 3;即 a = a / 3;

%= 取模后赋值--> 变量 %= 表达式 如: a %= 3;即 a = a % 3;

九九乘法表

  • FOR循环写
for i in `seq 1 9`;do
    for j in {1..9};do
      if [ $j -le $i ];then
        echo -e "${j}x${i}=$[j*i]\t\c"
      fi
    done
done
  • While循环写

i=1
while [ $i -le 9 ];then
      j=1
      while [ $j -le $i ];then
        let k=i*j
      echo -e "${i}x${j}=$k\t\c"
        let j++
      done
      echo
      let i++
done
  • 结果如下:
sh nine.sh 
1x1=1	
2x1=2	2x2=4	
3x1=3	3x2=6	3x3=9	
4x1=4	4x2=8	4x3=12	4x4=16	
5x1=5	5x2=10	5x3=15	5x4=20	5x5=25	
6x1=6	6x2=12	6x3=18	6x4=24	6x5=30	6x6=36	
7x1=7	7x2=14	7x3=21	7x4=28	7x5=35	7x6=42	7x7=49	
8x1=8	8x2=16	8x3=24	8x4=32	8x5=40	8x6=48	8x7=56	8x8=64	
9x1=9	9x2=18	9x3=27	9x4=36	9x5=45	9x6=54	9x7=63	9x8=72	9x9=81	
1x1=1	
1x2=2	2x2=4	
1x3=3	2x3=6	3x3=9	
1x4=4	2x4=8	3x4=12	4x4=16	
1x5=5	2x5=10	3x5=15	4x5=20	5x5=25	
1x6=6	2x6=12	3x6=18	4x6=24	5x6=30	6x6=36	
1x7=7	2x7=14	3x7=21	4x7=28	5x7=35	6x7=42	7x7=49	
1x8=8	2x8=16	3x8=24	4x8=32	5x8=40	6x8=48	7x8=56	8x8=64	
1x9=9	2x9=18	3x9=27	4x9=36	5x9=45	6x9=54	7x9=63	8x9=72	9x9=81

国际象棋棋盘

程序分析
国际象棋是 8*8 的,i (1~8) 代表行,j (1~8)代表列。当 i+j 为奇数的时候,是黑色格子,反之,白色格子。

  • 用for语句来实现
for i in {1..8};do
      for j in {1..8};do
           flag=$[(i+j)%2]
           if [ $flag -eq 0 ];then
           echo -e "\033[37m  \033[0m\c"
           else
           echo -e "  \c"
           fi
      done
done    
  • 输出结果如图:
    在这里插入图片描述
  • 用while语句来实现
i=1
while [ $i -le 8 ];do
    j=1
    while [ $j -le 8 ];do
      flag=$[(j+i)%2]
      if [ $flag -eq 0 ];then
      echo -e "\033[35m  \033[0m\c"
      else
      echo -e "  \c"
      fi
      let j++
    done
    let i++
done
  • 输出结果如图:
    在这里插入图片描述

完毕
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值