分支语句-if语句

if语句

1.if语句的语法结构

        以下三种结构。分为单分支语句和多分支语句

//第一种       //第二种        //第三种
if(表达式)     if(表达式)        if(表达式)
    语句;     {                {
                 语句一;            语句一;
              }                }
                else            else if()
              {                {
                语句二;            语句二;
              }                }
                                else
                               {
                                   语句三;
                               }

2.代码中的注意事项

        (1)if(表达式) 后不要加分号。

        (2)if 表达式判断为真时,会往下执行其对应的语句,否则,跳过该段语句或执行else后语句。

        (3)如何判断真假?                0表示假,非0表示真。

       (4)if 中表达式书写时,应注意写为  常量 == 变量  格式,因为在 变量==常量 or 变量=常量 时,代码均可执行,错误时不易找到;将格式写为  常量 == 变量  ,当==敲为=时,代码无法执行,会报错。同理可以用在类似的 选择、循环语句中。

//例如下列
    int a=1;
    scanf("%d",&a);
    if(4 == a)
    {
        printf("%d\n",a);
    }
    else
    {
        printf("nothing\n");
    }

//写为
    int a=1;
    scanf("%d",&a);
    if(a = 4)//将 == 写为 = ,导致代码的结果出错误,且因为代码正常执行,难以找到错误
    {
        printf("%d\n",a);
    }
    else
    {
        printf("nothing\n");
    }

代码正确时,执行结果应为输入4→4,输入其他数字→nothing

但下列写为 = 的结果则无论输入什么都是 4 

        (5)养成好习惯,在 if 和else 后随手加上 {},防止分辨不清对应的if-else语句。其中须注意,else就近不完整的if 组成完整的if语句 

int a = 1;
int b = 2;
if (1 == a)
	if (1 == b)
		printf("b>a");
else
		printf("a>b");

        如上图,输出结果应该为什么呢?     答案是a>b,而不是什么都不输出

        如果你的答案不正确,那么将 {} 带上,看看答案和你的一样吗?

        下列代码的结果是无输出,为什么上下不加括号的结果不一样呢。再看看(5)的内容吧。

int a = 1;
int b = 2;
if (1 == a)
{
	if (1 == b)
		printf("b>a");

}
else
{
	printf("a>b");
}

3.做一个小练习

        使用if语句来判断一个数是否是奇数;输出一个1-100之间的奇数。

//判断是否为奇数
	int a = 1;
	scanf("%d", &a);
	if (1 == a%2)
	{
		printf("a为奇数");//注意有的编译器中汉字可能输出为乱码

	}
	else
	{
		printf("a不是奇数");
	}
//while循环
int a = 1;
while (a<=100)
{
	if (1 == a%2)
	{
		printf("%d ", a);
	}
	a++;
}


//for循环
int a = 1;
for (a=1 ;a<=100 ;a++)
{
	if (1 == a%2)
	{
		printf("%d ", a);
	}
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值