1.1.3 while循环
学习目标
这一节,我们从 基础知识、简单实践、小结 三个方面来学习
基础知识
简介
awk支持while相关的循环处理,它主要有两种表现样式
样式1
while(条件){
执行语句
}
样式2
do {
执行语句
} while(条件)
简写样式
while(condition){执行语句;...}
do {条件;...} while(条件)
简单实践
实践1-while实践
while标准格式
[root@localhost ~]# awk 'BEGIN {
i=1;sum=0
while(i<=100) {
sum+=i
i++
}
print sum
}'
5050
求和1~100
[root@localhost ~]# awk 'BEGIN{i=1;sum=0;while(i<=100){sum+=i;i++};print "sum="sum}'
sum=5050
指定数据进行求和
[root@localhost ~]# read -p "请输入一个数字 : " NUM;awk -v num=$NUM 'BEGIN{i=1;sum=0;while(i<=num){sum+=i;i++};print "1~$NUM的和为="sum}'
请输入一个数字 :34
1~$NUM的和为=595
最大值和最小值
[root@localhost ~]# echo '0 234 252 3246 2245 2345 4536 3754 32 345 323 234 3 1' > num.txt
[root@localhost ~]# awk '{min=$1;max=$1;while(i<=NF){if(max<$i)max=$i;if(min>$i)min=$i;i++};print "max:"max,"min:"min}' num.txt
max:4536 min:0
标准求和
[root@localhost ~]# awk '{
sum=0
i=1
while (i<=NF) {
sum+=$i
i++
}
print sum
}' num.txt
17550
实践2-dowhile实践
基本格式
[root@localhost ~]# awk 'BEGIN{i=0;do {print i;i++} while(i<5)}'
0
1
2
3
4
求和1~100
[root@localhost ~]# awk 'BEGIN{ total=0;i=1;do{ total+=i;i++;}while(i<=100);print total}'
5050