关于C语言if语句中花括号{}的使用区别?请指点一下

(1)加花括号的程序
#include <stdio.h>

void main()
{
double unit_price = 5.0;
long quantity = 0L;
double discount = 0.0;

printf("\nEnter the number that you want to buy:");
scanf("%ld",&quantity);

if(quantity > 30 && quantity < 50)
{
discount = 0.1;

printf("\nThe price for %ld is $%.2lf.",quantity,unit_price* quantity *(1.0 - discount));
}

if(quantity > 50)
{
discount = 0.15;

printf("\nThe price for %ld is $%.2lf.",quantity,unit_price * quantity *(1.0 - discount));
}

if(quantity > 0 && quantity < 30)
{
discount = 0.0;

printf("\nThe price for %ld is $%.2lf.",quantity,unit_price * quantity *(1.0 - discount));
}
getch();

}

(2)不加花括号的程序
#include <stdio.h>

void main()
{
double unit_price = 5.0;
long quantity = 0L;
double total_price = 0.0;
double discount1 = 0.1;
double discount2 = 0.15;
double discount3 = 0.0;

printf("\nEnter the number that you want to buy:");
scanf("%ld",&quantity);

if(quantity > 30 && quantity < 50)
printf("\nThe price for %ld is $%.2lf.",quantity,unit_price * quantity *(1.0 - discount1));

if(quantity > 50)
printf("\nThe price for %ld is $%.2lf.",quantity,unit_price * quantity *(1.0 - discount2));

if(quantity > 0 && quantity < 30)
printf("\nThe price for %ld is $%.2lf.",quantity,unit_price * quantity *(1.0 - discount3));
getch();

}

我想问一下这俩个程序都是一样的结果 为什么第1个程序IF语句中要加花括号而第2个程序IF语句中就不用加花括号呢?区别在哪?

第1个回答  2019-01-05
if条件下要执行多个语句(使用了;就算一句)就要加括号括起,只执行一句就不用加
第2个回答  2008-08-19
你没看清楚呀,呵呵,下面的if只有一个分号;其它的是,说明只有一句

上面的if,有好多分号;说明有好几句,{里面代表的是一个整体,如果只有一个分号,要不要这个花括号都一样的,}
如果一成的将{}去了,其它的不变,结果就不一样了
第3个回答  2008-08-19
因为下边的程序if后面只有打印这一句,上边的程序还有一个赋值,下边的你加上括号也没问题
if语句默认是约束离它最近的语句,要是很多句,就用{}
呵呵
第4个回答  2008-08-19
呵呵~因为if默认的是循序第一句的语句,如果是两句或以上就要用大括号啦~~~~
第5个回答  2008-08-19
简单地说,用花括号括起来的代码块是一个整体,在运行的时候就像一条语句一样执行下来。

if执行的时候会执行到它后面的第一个分号为止,也就是说,它只执行一条语句,除非你用花括号把后面的一串语句括起来变成一条语句。

以上。
喜欢简单的老狼本回答被提问者采纳

在c语言中if()语句什么时候后面用{}什么时候不用?
如果需要执行多句,那么必须用;因为if语句的有效范围只有跟在它后面的一条语句,如果想执行多条,需要用花括号括起来形成一个语句块。

为什么c语言程序中if函数下面可以用{ }的
{}里面是指符合if之后所执行的语句,如果要执行的语句大于等于2个,就需要用{}括起来,不然系统默认执行if后面的第一条语句。不用{}的话,有时候会造成错误

c语言中if语句中的else后面的语句要不要加花括号{ } ?
不加。如果if后面有多个语句,则是需要的;如果只有一个的话,可写可不写!例如:if(a>b) print(a); if(a>b&&b>c) {print(b);print(c);} 这种循环判断语句的时候,不加花括号就是代表只有一句有效语句,如果不加代表的就是它下面只接受第一句话,后面的语句,自动归类为非此判断的在else...

c语言中的 { } 大括号的使用,什么时候需要什么 ?
大括号也称花括号是程序块的分界符,大括号起的作用主要就是划分区域用的。没有规定for后面一定要加大括号,如果for循环里只有一个语句,如果有多个语句,就需要用一个大括号把他们包起来。比如:if(a>b) println("a>b");与if(a>b) { println("a>b"); },其实效果是一样的但有的时候是必须...

if语句中 输出 写在花括号内或花括号外是分情况的吗??
具体问题,具体看,如果输出在if(){}里面,那就是满足括号里面的条件,进行花括号里面的其他处理之后输出,如果输出在花括号之外,那就要具体问题具体分析了

C语言新手求教关于花括号{}与普通括号( )的区别
{}这个是语句块,或者数组初始化等。()主要是优先级,判断条件等等。你提到的编译不过,需要看具体的情况。应该是写法的问题。

关于C语言中 {}的用法问题
{}用来包括同一语句块的多条语句。如果if、else之类的后面只有一条语句,可以不用,如果有多条,那就一定要用。while和for是一样的(如果还有其它流程控制语句,也是一样的,这就是C的语法)比如while(1){ ++i;++a } 如果你不括号,则会只执行i自增,而不会执行a自增。至于你说的写法问题,...

c语言中{}应加在什么位置
你想把多条语句当成一条来执行的时候就应该用花括号括起来。比如 if(i==0)a=b+c;b=a-c;如果没括号if只会执行它后面的一条语句a=b+c;if(i==0){ a=b+c;b=a-c; } 如果括起来了就当成一条语句执行到最后。当然如果没有括号的时候后面的第二条还是会按顺序执行下来但意义不一样了...

C语言,一个小问题,为什么在if后面一直都没有花括号?
1、加上大括号相当于一个语句块,if条件只影响其后面的第一个语句或语句块,加括号的话,则执行括号中的全部语句(也就是在if条件成立的情况下,则全部执行,如果if条件不成立,则整个括号中的语句都不执行);而不加括号的话,则影响其后的第一条语句,也就是说不管if条件成不成立,第一句以后的...

‘{}’在C语言的含义
{ }必须成对出现,每一对花括号都代表一段独立代码的开始和结束(例如一个for语句或一个if语句),简单的说它就是为了给电脑一个判断某一代码(main if for while...)所涵盖范围的标准

相似回答