黑马程序员——C控制语句(二)

------ Java培训、Android培训、iOS培训、.Net培训 、期待与您交流! -------

一、if语句

1.if语句是指编程语言 中用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。
2.C语言提供了三种形式的if语句:
(1) if(表达式)语句。
if(x>y)printf("%d",x);
(2) if(表达式)语句1 else 语句2
if(x>y)
       printf("%d",x);
     else
       printf("%d",y);
(3)  if(表达式1 )语句1
else if(表达式2)语句2
.....
多重选择
if (score < 1000)
   <span style="white-space:pre">	</span>a = 0;
     else if (score <1500)
   <span style="white-space:pre">	</span>a = 1;
     else
   <span style="white-space:pre">	</span>a = 2;
3.else与if配对:
如果没有括号指明,else与它最接近的一个if相配对。
4.多层嵌套的if
if~else if~else是嵌套if的一种形式,这是从一系列的二选一种进行选择。当进行了特定的选择后又导致了额外的选择时使用另一种嵌套if。
例如:
#include<stdio.h>
#include<math.h>
#include <stdbool.h>
void main()
{
    int m,i,k;
    bool isPrime;  //素数的标志
    printf("请输入一个整数:");
    scanf("%d",&m);
    k=(int)sqrt(m);
    for(i=2;i<=k;i++)
        if(m%i==0)
        {
            if((i*i)!=m)
                printf("%d可以分解成%d和%d\n",m,i,m/i);
            else
                printf("%d可以分解成%d\n",m,i);
            isPrime = false;  //不是素数
        }
    if(isPrime)
        printf("%d 是素数。\n",m);
    else
        printf("%d 不是素数。\n",m);
}
这是一个判断是否时素数的例子,如果不是素数,则吧因式进行分解。

二、条件运算符  ?:

C提供了一种简写方式来表示if~else语句的一种形式,这被称为条件表达式,并使用条件运算符(?:)。这是个有三个操作数的分两部分的运算符。
x = (y < 0)? -y:y;
相当于
if(y<0)
  <span style="white-space:pre">	</span>x = -y;
     else
        x = y;
一般形式:
expression1 ? expression2:expression3
如果expression1为真,整个条件表达式的值和expression2的值相同。如果expression1为假,整个条件表达式的值和expression3的值相同。
典型的例子,比较两个数种的最大值:
max = (a > b)? a:b;

三、break和continue

1.countunue:
用于三种循环形式中。当运行到该语句时,它将导致剩余的迭代部分被忽略,直接开始下一次循环。
#include <stdio.h>
int main()
{
    int sum = 0;
    for (int i=1; i <= 20; i++)
    {
        sum += i;
        continue;
        printf("黑马程序员\n");
    }
    printf("sum=%d\n",sum);
}

执行结果为:

可以看到continue下面的语句没有执行,而是直接进行了下次循环。
2.break:
在循环中break语句导致程序终止包含它的循环,并进行程序的下一阶段。
例:
#include <stdio.h>
int main()
{
    int sum = 0;
    for (int i=1; i <= 20; i++)
    {
        sum += i;
        break;
        printf("黑马程序员\n");
    }
    printf("sum=%d\n",sum);
}
执行结果:
程序执行到break后直接跳出程序了。

四、switch和break

Switch用在编程中,如C语言中它经常跟Case一起使用,是一个判断选择代码。其功能就是控制业务流程流转的。
switch语句的语法如下(switch,case和default是关键字):
switch ( controllingExpression )
{case constantExpression1 :
case constantExpression2 :
case constantExpression3 :
statements; /*当满足constantExpression1、constantExpression2、constantExpression3任何一个都执行statements */
break;
case constantExpression :
statements ;
break;
...
default :
statements ;
break;}
例:
#include<stdio.h>
int main()
{
char rank;
printf("请输入分数等级:(A、B、C、D、E)\n");
scanf("%c",&rank);
switch(rank)//switch((int)score/10)出现严重错误,switch(((int)score)/10)出现严重错误,
{
case'A':printf("A(90~100)\n");break;
case'B':printf("B(80~89)\n");break;
case'C':printf("C(70~79)\n");break;
case'D':printf("D(60~69)\n");break;
case'E':printf("E(0~59)\n");break;
default:printf("error!\n");break;
}
}
上面程序就是用来判断等级的,当输入登记时,会出现相应的分数。

五、总结与心得

1.if语句利用判断条件来控制程序是否执行紧跟在判断条件后的一个简单语句或代码块。如果为非零值,执行语句。为零则不执行。
2.if~else语句能够从两个选项中进行选择。非零则执行else前面的语句,为零则执行紧跟else后面的语句。通过else之后使用另一个if语句,可以建立一系列可以建立一系列可供选择的事物中进行选择的结果。
3.使用条件运算符(?:)可以产生一个表达式,这样可以比if~else语句简洁。
4.switch语句能从一系列以整数值作为标签的语句中进行选择。如果紧跟在switch关键字后的判断条件的整数值与某标签相匹配,就执行定位到该标签的语句。然后依次完成紧跟在该标签语句后的语句,直到遇到break.
5.break,continue导致程序流程跳转到程序的其他位置。break语句跳转到紧跟在它的循环或switch末尾的下一跳语句。continue语句导致程序跳过循环剩余部分,开始下一次循环。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值