首先,什么是循环?
所谓循环就是在满足条件的时候,反复运行其内的代码,直到条件不再满足,则继续向下运行。
循环一般有三种形式。
while循环;do-while循环;for循环
形式举例如下(求1-10的和):
int x=1,sum=0;
while(x<=10){
sum+=x;
x++;
}
int sum=0;
for(int i=1;i<=10;i++){
sum+=0;
}
int sum=0,i=1;
do{
sum+=i;
i++
}while(i<=9);
从中可以看出,他们之间既有相似之处,也有不同之处。
对于相同点来说,他们的基本内容都有:初始化表达式;循环体;条件;增值表达式,当然不排除特殊情况。他们都是在条件成立时执行循环,一旦条件不成立则不执行。
对于while循环和do-while循环,他们之间的区别是,在while循环中,首先要进行条件的判定,然后才能执行循环的内容。但是在do-while中,首先要执行一遍循环的内容,然后再进行条件的判定。
然后是while循环和for循环,他们在一定形式上是可以互相转化的,因为for循环直接集成了初始化表达式和增值表达式。
初始化表达式
whlie(条件){ for(初始化表达式;条件;增值表达式){
循环内容 循环内容
增值表达式 }
}
然后,便是循环的嵌套,其中最常见,或者说我用的最频繁的是,二重for循环。在二重for循环中,分为内层和外层,外层执行一次,内层执行多次到条件不在满足,接着外层又执行一次,内层继续执行多次。直到外层不在满足条件。
举例:
for(int i=0;i<4;i++){ 外层执行4次
for(int n=0;n<6;n++){ 每外层执行一次内层执行6次
}
}
然后,是流程的转移控制,主要是goto;break;continue;
对于goto的话,在实际过程中,我基本没有使用到。可以使程序直接跳转的语句标号锁标识的语句然后继续执行。一般来说,它常常被用于直接跳出多重循环。
对于break来说,当遇到这一条语句时,循环立即终止,在嵌套循环中,他只能一次跳出一层循环,不像goto那样可以直接跳出多层。
再来说continue的话,当执行到他时,将跳过下面的语句,直接开始下一次循。同样的。在嵌套中,continue也只是对本层循环有用。
题目举例
#最大数
max = 0
count = 0
while True:
num = int(input("请输入整数(输入0结束):"))
if num == 0:
break
if num > max:
max = num
count = 1
elif num == max:
count += 1
print("最大值是:",max)
print("出现的次数是:",count)
其次,对于可以找到一些规律的问题,也可以用循环来解决,比如求最大公因数用到”辗转相除法”时.
for(;;){
c=a%b;
if(c==0)break;
else {
a=b;
b=c;
}
}