C语言,一个小问题,为什么在if后面一直都没有花括号?

#include<stdio.h>voidmain(){intx,y;scanf("%d",&x);if(x<100)y=-1;elseif(x==50)y=0;else... #include<stdio.h>
void main()
{
int x,y;
scanf("%d",&x);
if(x<100)
y=-1;
else
if(x==50)y=0;
else y=1;
printf("x=%d,y=%d\n",x,y);
}
展开
 我来答
tattackor
推荐于2017-09-25 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:863万
展开全部

1、加上大括号相当于一个语句块,if条件只影响其后面的第一个语句或语句块,加括号的话,则执行括号中的全部语句(也就是在if条件成立的情况下,则全部执行,如果if条件不成立,则整个括号中的语句都不执行);而不加括号的话,则影响其后的第一条语句,也就是说不管if条件成不成立,第一句以后的都不会有任何影响。if 语句后有大括号, 则大括号里面所有的语句都会在if表达式为真时执行;如果没大括号,则if表达式为真时只会执行第一条语句.

2、例如:

#include <stdio.h>
int main()
{
    if (true)
    {
        printf("11111111111\n");  // 这两条都会打印
        printf("11111111111\n");
    }
    if (false)
        printf("11111111111\n"); // 只有这一条不会打印
        printf("22222222222\n"); // 以下两条都会打印
        printf("22222222222\n");
    return 0;
}
songhai911
2014-07-18 · 超过61用户采纳过TA的回答
知道小有建树答主
回答量:116
采纳率:0%
帮助的人:68万
展开全部
如果没有花括号,则是简单语句,有则是复合语句。
if(x<100) y=-1;
和if(x<100) {y=-1;}是等效的,如果有两条以上的,则是复合语句,用{},如if(x<100) {y=-1; x=0;}
如果不用{}, 则x=0;是无条件执行的,这时再else就会错误。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Algeboy
2014-07-18 · TA获得超过750个赞
知道小有建树答主
回答量:105
采纳率:0%
帮助的人:131万
展开全部
如果if后面的语句只有一条的话,可以省去花括号;
如果有多条,则花括号不能省去。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Kiss璀璨青春
2015-10-11 · TA获得超过360个赞
知道小有建树答主
回答量:365
采纳率:0%
帮助的人:112万
展开全部
花括号表示一个代码块

if只能控制一个代码块或一条语句,当只需要控制一条语句时,可以忽略不写代码块,不过为了可读性建议if语句不论是否只控制一条语句统一加上花括号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f7730a4
2014-07-18 · TA获得超过429个赞
知道答主
回答量:74
采纳率:50%
帮助的人:21.8万
展开全部
if条件成立时执行的语句只有一条的话,可以不加大括号,else也是
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式