如下请看加粗部分IF后没花括号.如果有会如何?请告知.并详细解释下IF后花括号的作用.
#include<iostream>
#include "Sales_items.h"
int main()
{
Sales_item total,trans;
if(std::cin>>total)
{
while(std::std>>trans)
if(total.same_ibns(trans))
total += trans;
else{
std::cout<< total<<std::endl;
total=trans;
}
std::cout<<total<<std::endl;
}else{
std::cout<<"no date."<<std::endl;
return -1;
}
return 0
}
在这里 if()判断后只有一句话 可以不要这对{}
在任何地方 {}表示一个代码段,这对{}中的代码是一个整体 如果if()成立以后要做很多事情 那么就需要这对{},这是在告诉 编译器 if()成立 以后我要做的事情是 {}的事情
bool flag = GetFlag();
例如 if(flag)
{
int i = 0;
}
和if(flag) int i= 0; 是一样的;
但是
int i;
if(flag)
{
int i = 2 ;
int j =8 ;
i =i+j;
}
和
int i;
if(flag)
i = 2 ;
int j =8 ;
i =i+j;
就不一样的 !! 因为 如果flag为false: 前者 i= 0 但是后者 i= 8;这就是有无{}的区别
复合赋值 和 total = total + trans 在数据类型一样的时候 其实没有太多的区别 只有当数据类型不一样的 是 才有一些区别