java之繼承、方法重寫、this/super、抽象、final
阿新 • • 發佈:2020-12-01
一、變數數值計算符號和命令
1. 常見算數運算子
符號 | 說明 |
---|---|
+、- | 加號、減號 |
*、/、% | 乘法、觸法、取餘 |
** | 冥運算 |
++、-- | 增減、減少 |
!、&&、|| | 邏輯非(取反)、邏輯與(and)、邏輯或(or) |
<、<=、>、>= | 比較符號(小於、大於) |
==、!=、= | 比較符號(相等、不相等、相當於) |
<<、>> | 向左移位、向右移位 |
~、|、&、^ | 按位取反、異或、與、或 |
=、+=、-=、*=、/+、%= | 賦值運算(a+=1相當於a=a+1) |
2. 常見算數運算命令
符號 | 說明 |
---|---|
(()) | 用於整數運算的常用運算子,效率很高 |
let | 用於整數運算,類似於"(())" |
expr | 可用於整數運算,還有很多其他功能 |
bc | linux下的計算器程式,適合整數及小數 |
$[] | 用於整數運算 |
awk | awk既可用於整數,也可以用於小數運算 |
declare | 定義變數值和屬性,-i引數可以用於定義整形變數,做運算 |
二、計算實踐
1. 雙小括號
1) 常規用法
符號 | 說明 |
---|---|
((i=i++)) | 先賦值後運算 |
((i=++i)) | 先運算後賦值 |
i=$((i+1)) | 運算後賦值給變數i |
((a>7&&b<5)) | 進行比較操作,還可以做條件判斷 |
echo $((2+1)) | 世界輸出表達式的結果 |
++、-- 運算的記憶方法:
i=i++表示先對i賦值,然後進行自加運算,即實際的i值比輸出的i值大
i=++i表示先進行自加運算,在對i賦值,即實際的i和輸出的i一樣
2) i++和++i測試
- i=6;echo $((i++));echo $i
6
7
- i=6;echo $((++i));echo $i
7
7
2.其他計算命令
1) let 賦值表示式
let i=i+2等同於((i=i+2))
2) bc計算命令
bc是linux下的計算機,常常用配合管道進行計算,可以進行小數運算
echo "1+9"|bc
i=5;i=`echo $i+6|bc`
3) awk做算數運算
可以進行小數、整數的運算,很好用echo "7.7 9.8"|awk '{print ($1+$2),($1*$2)}'
17.5 75.46
4) $[] 做運算
echo $[4+2] $[4*2] $[4**2]
6 8 16
三、案例
1.實現輸出1+2+3..+10=55的計算和輸出
- 方法1:
echo `seq -s "+" 10`=`seq -s + 10|bc`
1+2+3+4+5+6+7+8+9+10=55
- 方法2:
echo `echo {1..10}|tr " " "+"`=`echo {1..10}|tr " " "+"|bc`
1+2+3+4+5+6+7+8+9+10=55
- 方法3:expr
echo `seq -s + 10`=`seq -s " + " 10|xargs expr`
1+2+3+4+5+6+7+8+9+10=55
- 方法4:(())
echo `seq -s + 10`=$((`seq -s + 10`))
1+2+3+4+5+6+7+8+9+10=55
2.read命令讀取引數
1) read命令基礎
- 語法:read [引數] [變數名]
-p 設定提示資訊
-t 設定輸入等待時間(秒)read -t 10 -p "input tow num:" a b
input tow num:1 2
設定10秒超時,提示語為**
2) 計算指令碼演示
- cat /server/scripts/t.sh
#!/bin/bash
read -p "num1:" a
read -p "num2:" b
echo "a-b=$(($a-$b))"
echo "a+b=$(($a+$b))"
echo "a*b=$(($a*$b))"
echo "a/b=$(($a/$b))"
echo "a**b=$(($a**$b))"
做到允許指令碼後,分別提示輸入兩個字串的功能
3) 指令碼增加判斷整數語句
- cat /server/scripts/t.sh
#!/bin/bash
#no.1
read -p "num1:" a
expr $a + 0 &>/dev/null
[ $? -ne 0 ] && {
echo "pls int"
exit 1
}
#no.2
read -p "num2:" b
expr $b + 0 &>/dev/null
[ $? -ne 0 ] && {
echo "pls int"
exit 2
}
#no.3
echo "a-b=$(($a-$b))"
echo "a+b=$(($a+$b))"
echo "a*b=$(($a*$b))"
echo "a/b=$(($a/$b))"
echo "a**b=$(($a**$b))"
達到每輸入一個字串,驗證是否為整數,不是整數則提示並退出,兩個都是整數後,則進行計算