选择与循环

总的来说,涉及两个选择(if,switch)三个循环(while,do...while,for),这些都是要熟知的关键词,下面来依次介绍。

if语句

单分支选择结构:if(表达式)语句A

双分支选择结构:if(表达式)语句1

                             else             语句2

多分支选择结构:if(表达式1)语句1

                             else if(表示式2) 语句2

                             else if(表达式m)语句m

                             else  语句m+1

在语法上只允许每个分支带一条语句,多条语句需要使用花括号。举几个简单的例子:

#include<stdio.h>
int main()
{
    int a,b,max;
    scanf("%d,%d",&a,&b);
    if(a>b)
    max=a;
    if(a<b)
    max=b;
    printf("max=%d",max);
    return 0;
}
#include<stdio.h>
int main()
{
    int a,b,max;
    scanf("%d,%d",&a,&b);
    if(a>b)
    max=a;
    else
    max=b;
    printf("max=%d",max);
    return 0;
}
#include<stdio.h>
int main()
{
    int a,b,max;
    scanf("%d,%d",&a,&b);
    if(a>b)
    {
      max=a;
      printf("%d\n",a);
    }
    else if(a<b)
    {
      max=b;
      printf("%d\n",b);
    }
    else
    max=a;//max=b
    printf("max=%d",max);
    return 0;
}

此外在双分支中,除了用if-else,还可以用条件运算符(C语言唯一的一个三元运算符),上面的例子就可以改为这样:

#include<stdio.h>
int main()
{
int a,b,max;
scanf("%d,%d",&a,&b);
printf("max=%d",max=a>b?a:b);
return 0;
}
switch语句

switch语句适用于情况较多的时候,一般形式如下:

switch(表达式)

{

        case 常量1:

                        可执行语句1;

        case 常量2:

                        可执行语句2;

        case 常量n:

                        可执行语句n;

        default :

                        可执行语句n+1;

}

用switch语句必须注意表达式必须为char型或int型,且在每个可执行语句后都要加break

如果没有 一直运行到有break为止。

#include<stdio.h>
int main()
{
    int a;
    scanf("%d",&a);
    switch(a%2)
    {
       case 0:
        printf("这个数是偶数\n");
        break;
       case 1:
        printf("这个数是奇数\n");
        break;
    }
    return 0;
}

总之这两个分支语句可以嵌套调用。

while循环

其形式为:

while(循环控制表达式)

{

语句序列

}

循环控制表达式的值为真(值为1)则执行语句,为假(值为0)则跳出循环

在语句中添加条件可控制循环次数,切记误入死循环。

#include<stdio.h>
int main()
{
int a=10;
while(a>=0)
{
printf("haha\n");
a--;
}
return 0;
}

在某些情况下可用break跳出循环。

do...while循环

其形式为:

do

{

      语句序列

}while(循环控制表达式);

这个循环的表达式无论为真或为假,至少运行一次。

for循环

其形式为:

for(初始化表达式;循环控制表达式;增值表达式)        初始化表达式;

{                                                                                          for(;循环控制表达式;增值表达式)

语句序列                                                                      或   {

                                                                                            语句序列

}                                                                                          }

初始化表达式;

for(;循环表达式;)

{

语句序列

增值表达式;

}

for语句中表达式之间的分隔符是分号,有且只有两个。for语句可用while语句等价实现。

在for(;;)后加;会导致循环什么也不做,只起延时作用。

#include<stdio.h>
int main()
{
int i,n;
long p=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
    p=p*i;
}
printf("%d!=%ld\n",n,p);
return 0;
}

学会循环和分支,会解决较多问题如累加,累乘,有规律的问题等等。

以上就是我总结的内容了,可能有哪些知识未写到,感谢读者花费时间阅读我的文章。如果文章有问题,欢迎随时与我分享。让我们一起努力吧。

                             

  • 37
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值