1.while
while(表达式)
{
循环语句;
}
[注意]:
while循环中的break:
在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。 所以,while中的break是用于永久终止循环的。
while循环中的continue:
continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while 语句的判断部分。进行下一次循环的入口判断。(死循环)
int binsearch(int arr[], int k, int left, int right)
{
while (left <= right) // <=
{
int mid = left + (right - left) / 2; //防止栈溢出 亦可用 mid = (left + right) >> 1 右移
if (arr[mid] > k)
{
right = mid - 1;
}
else if (arr[mid] < k)
{
left = mid + 1;
}
else
{
return mid; //找到了
}
}
return -1; //没有找到
}
int main()
{
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int left = 0;
int right = sizeof(arr) / sizeof(arr[0]) - 1; //求数组长度
int k = 7; //要找的数为7
int ret = binsearch(arr, k, left, right);
if (ret == -1)
{
printf("找不到了");
}
else
{
printf("找到了");
}
printf("\n");
system("pause");
return 0;
}
2.for
for(表达式1;表达式2;表达式3)
循环语句;
[ 注意] :表达式1为初始化部分,用于初始化循环变量的;表达式2为条件判断部分,用于判断循环时候终止;表达式3为调整部分,用于循环条件的调整。
int main()
{
int i = 0;
int tmp = 1;
int sum = 0;
int n = 0;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
tmp = tmp * i;
sum += tmp;
}
printf("%d ", sum);
system("pause");
return 0;
}
3.do while
do
循环语句;
while(表达式)