认识c++好久了,却并不了解它。从基本的开始,记录我的嘻加加学习心得。
1 关于浮点数运算:
float result;
result=1/2;
cout<<result<<endl;
result=7/2;
cout<<relsult<<endl;
以上输出结果是:
0
3
因为整数除以整数 得到的还是整数,小数点后的数字丢失了,要想输出浮点数,可以这样写:
float result;
result=1.0/2;
cout<<result<<endl;
result=7/2.0;
cout<<result<<endl;
输出是:
0.5
3.5
2.关于浮点数和0的比较问题:
由于浮点数0.0000001 我们可以把它看作0
在程序中可以根据自己需要的精度去判断一个浮点数是不是0,一般避免直接判断 一个float型的数是否为0,我们可以设置1e-5 或者1e-6甚至是1e-10来判断一个数是否为0
比如:
i=5.000001;
j=5.0000001;
if(fabs(i-j)<1e-5)
cout<<0<<endl;
else
cout<<i-j<<endl;
3.关于switch case
case后面跟的是一个常量表达式,不能是判断 switch(a)中 关于a 的运算式。只能是a的确定的结果,常量。
a只能是 int char enum 类型。 在执行完一个case后面的语句后,程序转到下一个case后的语句开始执行。千万不要理解成执行完一个case后程序就跳出switch,如果想跳出switch可以加上 break;多个case 语句可以共用一段 程序: 例如 case ‘1’: case‘2’:cout<< "it is smaller than three " ; 一个switch case 语句中可以没有default ;
4.关于continue 和break
在循环语句中,我们根据某个条件需要提前结束整个循环,可以通过break。不过break只能终止包含它的那层循环,如果这层循环包含在另外一层循环之内,那么break就鞭长莫及了,return可以结束整个函数。
continue终止本次循环,而不是整个循环,即是忽略此后包含在循环体中语句,直接进入下一次的循环。可以通过bool表达式的测试来 continue 或者break 。
while(i<4)
{
j++;
if(j==3)
continue;
for(int k=0;k<4;k++)
{
if(k==2)
break;
cout<<"k= "<<k<<endl;
}
cout<<"j= "<<j<<endl;
i++;
}
输出是:
k=0
k=1
j=1
k=0
k=1
j=2
k=0
k=0
j=4
k=0
k=1
j=5
注意,没有j=3的情况,而且没有k=2 、3 的情况,因为内层遇到k==2 break了,而外层结束了j=3时的循环,直接进入了下一次得循环,此时j=4。
很基础,期待自己和c++的很熟的那天!