while循环
while(表达式)
{
循环体;
//循环条件的改变
}
for循环
```cpp
for(表达式1;表达式2;表达式3)
{
循环体4;
}
``
编程案例:打印斐波那契数列
#include<iostream>
using namespace std;
typedef long long ll; // 定义足够大的数值 数据类型
int main(){
int n;
cin >> n;
ll t1 = 0,t2 = 1,t3;
while(n--){
cout << t1 << ' ';
t3 = t1 + t2;
t1 = t2;
t2 = t3;
}
return 0;
}
#include <stdio.h>
long Fibonacci_loop(int n);
long Fibonacci_rec(int n);
int main()
{
int n;
printf("Enter a number:\n");
scanf("%d",&n);
printf("loop Fibonacci:%ld\n",Fibonacci_loop(n));
printf("recursion Fibonacci:%d\n",Fibonacci_rec(n));
return 0;
}
long Fibonacci_loop(int n)
{
int i;
long sum,sum1,re;
if(n<=2)
return 1;
for(sum=1,re=1,sum1=1,i=1;i<=(n-2);i++)
{
re=sum;
sum=sum1+sum;
sum1=re;
}
return sum;
}
long Fibonacci_rec(int n)
{
if(n>2)
return Fibonacci_rec(n-1)+Fibonacci_rec(n-2);
else
return 1;
}
do-while循环不常用,do-while循环和while循环的区别在于:do-while循环会先对代码进行一次执行,然后再进行while语句的判断
编程案例:编写一个猜字游戏需要用户选择页面,其次是,在游戏过程中如果猜错就需要重新输入(即需要用到循环结构)
当用户猜对了,就需要停止程序。(使用break)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<time.h>
#include <stdlib.h>
void menu()
{
printf("******************************\n");
printf("****1:play 0:exit ****\n");
printf("******************************\n");
}
void play_game()
{
int fog = 0;
int random = 0;
random=rand()%101;
while(1)
{
printf("请输入一个数:");
scanf("%d",&fog);
if(random==fog)
{
printf("恭喜你,答对了\n");
break;
}
else if (fog>random)
{
printf("你输入的大了\n");
}
else
{
printf("你输入的小了\n");
}
}
}
int main()
{
int input;
srand((unsigned )time(NULL));
do
{
menu();
printf("请输入你的选择:");
scanf("%d",&input);
switch(1)
{
case 1:
play_game();
break;
case 0:
exit(EXIT_SUCCESS);
default:
printf("error");
break;
}
}while(input);
return 0;
}