C语言拾遗-C语言关键字-if-else

摘要:if语句是C语言两大选择语句之一,常与else配合使用。

if

if语句可以构成分支结构。它根据给定的条件进行判断,以决定执行某个分支程序段。C语言的if语句有三种基本形式。

1 if.......形式

基本形式:
if(表达式) 语句;

功能:如果表达式为真,就执行下面的语句;如果表达式为假,就不执行下面的语句。语句可以是单条语句,也可以是用花括号{}包括起来的复合语句。示例如下:

#include <stdio.h>
int main(void)
{
    if (3>2)
    {
        printf("I Love You\n");
    }
    return 0;
}

运行结果:

I Love You

补充:只要 if 后面的表达式成立或非零(比如:1,2,3,a,b,c,(3>2)等),就执行其下的语句。

2 if……else形式

一般格式:
if(表达式) 
    语句1;
else 
    语句2;

功能:如果表达式的值为真,则执行语句1,否则执行语句2 。语句1和语句2可以是复合语句。示例如下:

# include <stdio.h>
int main(void)
{
    int i, j;
    printf("请输入两个数:");  //提示输入
    scanf("%d %d", &i, &j);  //注意取地址符&amp;
    if (i>j)
    {
        printf("i大于j\n");
    }
    else
    {
        printf("i小于j\n");
    }
    return 0;
}

运行结果:

请输入两个数:
43 56
i小于j

3 if……else……if形式

一般形式为:
if(表达式1)
    语句1;
else  if(表达式2) 
    语句2;
else  if(表达式3) 
    语句3;
    … 
else  if(表达式m) 
    语句m;
else
    语句n;

功能:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。示例如下:

#include <stdio.h>
int main(void)
{
    char c;
    printf("input a character:    ");
    c=getchar();
    if(c<32)
        printf("This is a control character\n");
    else if(c>='0'&&c<='9')
        printf("This is a digit\n");
    else if(c>='A'&&c<='Z')
        printf("This is a capital letter\n");
    else if(c>='a'&&c<='z')
        printf("This is a small letter\n");
    else
        printf("This is an other character\n");
    return 0;
}

本例要求判别键盘输入字符的类别。可以根据输入字符的ASCII码来判别类型。由ASCII码表可知ASCII值小于32的为控制字符。在“0”和“9”之间的为数字,在“A”和“Z”之间为大写字母, 在“a”和“z”之间为小写字母,其余则为其它字符。这是一个多分支选择的问题,用if-else-if语句编程,判断输入字符ASCII码所在的范围,分别给出不同的输出。例如输入为“g”,输出显示它为小写字符。

4 扩展形式

if条件语句的形式是多种多样的。比如if嵌套、if……if类似的形式,但是都离不开上面介绍的三种基本形式。

其他补充:

  • 在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。
  • 在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。但要注意的是在}之后不能再加分号。
  • 在三种形式的if语句中,在if关键字之后均为表达式。 该表达式通常是逻辑表达式关系表达式,但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。只要表达式的值为非0,即为“真”。
  • if 可以不带 else ,但 else 不能单独出现,必须配合 if 一起出现。

参考链接

http://c.biancheng.net/cpp/html/38.html
https://zhidao.baidu.com/question/71105101.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值