关于c++的基本语法问题


认识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++的很熟的那天!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值