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);
} 展开
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);
} 展开
6个回答
展开全部
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;
}
展开全部
如果没有花括号,则是简单语句,有则是复合语句。
if(x<100) y=-1;
和if(x<100) {y=-1;}是等效的,如果有两条以上的,则是复合语句,用{},如if(x<100) {y=-1; x=0;}
如果不用{}, 则x=0;是无条件执行的,这时再else就会错误。
if(x<100) y=-1;
和if(x<100) {y=-1;}是等效的,如果有两条以上的,则是复合语句,用{},如if(x<100) {y=-1; x=0;}
如果不用{}, 则x=0;是无条件执行的,这时再else就会错误。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果if后面的语句只有一条的话,可以省去花括号;
如果有多条,则花括号不能省去。
如果有多条,则花括号不能省去。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
花括号表示一个代码块
if只能控制一个代码块或一条语句,当只需要控制一条语句时,可以忽略不写代码块,不过为了可读性建议if语句不论是否只控制一条语句统一加上花括号
if只能控制一个代码块或一条语句,当只需要控制一条语句时,可以忽略不写代码块,不过为了可读性建议if语句不论是否只控制一条语句统一加上花括号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if条件成立时执行的语句只有一条的话,可以不加大括号,else也是
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询