1:while
基本格式:
while(表达式)
语句;
即当表达式成立时,执行语句。
举个栗子:
判断一个数是不是回文数(回文数:正着写和倒着写是一样的,例如:868)
#define _CRT_SECURE_NO_WARNINGS
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
void main()
{
int m, val;
int sum = 0;
printf("亲,请输入要判断的数字:\n");
scanf("%d",&val);
m = val;
while (m)
{
sum = sum * 10 + m % 10;
m = m / 10;
}
if (sum == val)
{
printf("亲,这个数字是回文数!\n");
}
else
{
printf("亲,这并不是回文数!\n");
}
system("pause");
}
运行结果:
2:do… while
基本格式:
do
{
……..
}while(表达式)
举个栗子:
你发现了什么???
敲黑板:do……while肯定至少执行一次(先执行,后判断)
3:三种循环比较
for循环和while循环等价,可能执行,也可能不执行(表达式不成立时不执行),即:
#define _CRT_SECURE_NO_WARNINGS
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
void main()
{
int i;
int sum1 = 0;
int sum2 = 0;
for (i = 0; i < 101; i++)
{
if (i % 2 == 1)
{
sum1 = sum1 + i;
}
else
{
sum2 = sum2 + i;
}
}
printf("奇数和sum1=%d\n", sum1);
printf("偶数和sum2=%d\n", sum2);
system("pause");
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
void main()
{
int i;
int sum1 = 0;
int sum2 = 0;
i = 0;
while (i<101)
{
if (i % 2 == 1)
{
sum1 = sum1 + i;
}
else
{
sum2 = sum2 + i;
}
i++;
}
printf("奇数和sum1=%d\n", sum1);
printf("偶数和sum2=%d\n", sum2);
system("pause");
}
你会发现,这两个是等价的,运行结果如下:
而do…while肯定至少执行一次。