在了解分支循环前我们得先知道什么是c语句我们现在学习的是控制语句
if (表达式)
语句;
if (表达式)
语句1;
else
语句2;
多分支
if (表达式1)
语句1;
else if (表达式2)
语句2;
else
语句3;
注意 else 里面不需要再去添加表达式了
上代码!
#include
//代码1
int main()
{
int age = 0;
scanf("%d", &age);
if(age<18)
{
printf("未成年\n");
}
}
//代码2
#include
int main()
{
int age = 0;
scanf("%d", &age);
if(age<18)
{
printf("未成年\n");
}
else
{
printf("成年\n");
}
}
//代码3
#include
int main()
{
int age = 0;
scanf("%d", &age);
if(age<18)
{
printf("少年\n");
}
else if(age>=18 && age<30)
{
printf("青年\n");
}
else if(age>=30 && age<50)
{
printf("中年\n");
}
else if(age>=50 && age<80)
{
printf("老年\n");
}
else
{
printf("老寿星\n");
}
}
int main()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
else是与离else最近的if匹配 适当的加入{}可以保证自己的代码风格逻辑清晰能提高代码的可读性
switch 常常用于多分支的情况取代if else if else … 的情况 switch的语法如下
switch(整型表达式)
{
语句项;
}
上代码!
#include
int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:
m++;
case 2:
n++;
case 3:
switch (n)
{ //switch允许嵌套使用
case 1:
n++;
case 2:
m++;
n++;
break;
}
case 4:
m++;
break;
default:
break;
}
printf("m = %d, n = %d\n", m, n);
return 0;
}
如果表达式的值和case标签的值都不匹配咋办? 就加default 子句
do while 的语法
do
循环语句;
while(表达式);
循环至少执行一次 ,使用场景有限 ,不经常使用
上代码!
#include
int main()
{
int i = 1;
do
{
if(5 == i)
break;
printf("%d ", i);
i=i+1;
}while(i<=10);
return 0;
}
结果是1234 打印了1234 当 i == 5 时break 直接跳出循环
那如果把break 换成continue会出现和上面一样的情况吗?
#include
int main()
{
int i = 1;
do
{
if(5 == i)
continue;
printf("%d ", i);
i=i+1;
}while(i<=10);
return 0;
}
结果是1234 死循环 当i==5时候continue 直接跳到do while 的判断部分 从而出现死循环
#include
int main()
{
int n = 1;
while (n<=10)
{
if (5 == n)
{
break;
}
printf("%d", n);
n++;
}
return 0;
}
while循环 中的break是用于永久终止循环的
其实循环中只要遇到break,就停止后期所有的循环,直接终止循环
那如果把break改成continue 会出现咋样的情况?
#include
int main()
{
int n = 1;
while (n<=10)
{
if (5 == n)
{
continue;
}
printf("%d", n);
n++;
}
return 0;
}
这里出现了死循环 continue跳过了本次循环后面的代码直接跳到了while循环的判断部分。进行下一次循环入口的判断
for(表达式1; 表达式2; 表达式3)
循环语句;
表达式1为初始化部分,用于初始化循环变量的。
表达式2为条件判断部分,用于判断循环时候终止。
表达式3为调整部分,用于循环条件的调整。
#include
int main()
{
int i = 0;
for (i = 0; i <= 10; i++)
{
if (5 == i)
break;
printf("%d", i);
}
return 0;
}
这里for循环中的break和while循环中的一样,终止循环。这次把break换成continue 会一样吗
#include
int main()
{
int i = 0;
for (i = 0; i <= 10; i++)
{
if (5 == i)
continue;
printf("%d", i);
}
return 0;
}
这里continue 在for循环中就和while循环有区别了continue在for循环中跳到了循环的调整部分
现在我们来对比一下for循环和hwhile循环的优缺点
int i = 0;
//实现相同的功能,使用while
i=1;//初始化部分
while(i<=10)//判断部分
{
printf("hehe\n");
i = i+1;//调整部分
}
//实现相同的功能,使用while
for(i=1; i<=10; i++)
{
printf("hehe\n");
}
在循环中存在的三个必要条件 for 和while 都有 但是for 和while 的风格不一样 一旦发现问题 查找while
循环很不方便 所以我们更偏向与for 循环。 do while 循环先执行再判断 ,while先判断再执行,除此之外没有区别。
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int left = 0;
int right = 9;
int k = 7;
int flag = 0;
while (left <= right)
{
int mid = (left + right) / 2;
if (arr[mid] > k)
{
right = mid - 1;
}
else if (arr[mid] < k)
{
left = mid + 1;
}
else
{
printf("找到了下标是 :%d\n", mid);
flag = 1;
break;
}
}
if (flag == 0)
{
printf("找不到\n");
}
}
如果你觉得这篇文章对你有帮助,不妨动动手指给点赞收藏加转发,给鄃鳕一个大大的关注
你们的每一次支持都将转化为我前进的动力!!!