C++基础语法二-基本循环语句(双更)

本文介绍了C++中的基本循环语句,包括for、while和do-while循环的使用,强调了循环变量的初始化、条件判断和修正。此外,还讲解了标准输入输出cin和cout的运用,以及流状态的控制。接着,讨论了转移语句,如break、continue和go to在不同场景下的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


昨天通宵刷完了《龙与虎》,只有一句话:龙虎一生推!!!

一、循环语句

  1、for循环

 上  代  码

#include<iostream>
using namespace std;
int main()
{
	int i;
	for (i = 0/*初始状态*/; i < 5/*条件判断*/; i++/*修正变量*/)
		{
		cout << "Hello.\n";//循环体
		}
}

  与c语言一样,括号内第一个语句i=0是循环变量的初始化。第二个语句i<5,是循环条件,当条件为真时,执行for后面{}花括号内的语句,条件为假时,说明循环结束,跳出for循环。执行下一条语句。第三句是对循环变量的修正,也就是对循环变量的改变。
  有一点很有趣,就是因为C++与C一样,是以分号;来划分一个代码命令的,所以for循环的分号出现在循环体里而不是for的括号后面。

  有趣的来了,计算1加到100的结果(很多种方法):

#include<iostream>
using namespace std;
int main()
{
	int i,sum=0;
	for (i = 1; i <= 100; i++)
		sum += i;
	cout << sum<<endl;
}

这里注意一下,endl可加可不加
endl:代码结束并打一个回车。

#include<iostream>
using namespace std;
int main()
{
	int i,sum=0;
	for (i = 1; i <= 100; )
		sum += i++;
	cout << sum<<endl;
}

这里将循环变量的赋值与累加赋值合并,进而可以省略for括号后的修正变量部分

#include<iostream>
using namespace std;
int main()
{
	int i,sum=0;
	for (i = 1; ; i++)
		{
		sum += i;
		if(i=100)
			break;
		}
	cout << sum<<endl;
}

这一段,很巧妙地运用了上一篇C++基础语法一里面的break内容,因为for中没有判断条件,所以巧妙地运用了if判断语句去实现在适当的时机去停止该循环。

#include<iostream>
using namespace std;
int main()
{
	int i=1,sum=0;
	for (;i<=100 ; i++)
		{
		sum += i;
		}
	cout << sum<<endl;
}

这次在循环外定义并给其赋初值,可以但是不推荐这么去做因为变量不明确(当循环体复杂的时候

  2、while循环

while循环:

还是用累加的例子:

#include<iostream>
using namespace std;
int main()
{
	int n=1;
	while(i<=100)
		sum+=i++;
	cout<<sum<<endl;
}

当while的括号内判定为真的时候,执行循环,并跳回循环的判定。直到括号后的判定为假,才跳出循环。

do-while循环:

do-while循环,与前面的循环不一样,是先执行循环体后做判断。
故:do-while循环至少被执行一次。

int sum=0,i=1;
do
	{
	sum+=i++
	}
while(i<=100);

像这样,也能求出累加的和。
但是要注意局部变量和全局变量,在do内定义的变量只能用在do内,不能用在其他的地方,否则会出错。

二、输入输出语句

1、标准的输入输出:

就是很简单的:cin>>就是从输入设备输入(键盘)
       cout>>就是输出到输出设备(屏幕)

2、流状态:

showpos在正数前显示+
showbase显示16/8进制前的0x或0
uppercase16进制字母强制大写
showpoint浮点数即使小数点后均为0也加小数点
boolalpha逻辑值1/0用true、false表示
left左对齐
right右对齐
dec十进制显示整数
hex16进制显示整数
oct八进制显示整数
fixed定点格式输出
scientific科学计数法输出

举个栗子:

cout<<hex<<18<<" "<<shoubase<<18 得到:12 0x12

若想取消操作流,就用noshowpos等等之类(就是在前面加一个no),另外,left和right,dec、oct、hex,这两组相互对立,设置了一个就取消了另外一个。

#include<iostream>
using namespace std;
int main()
{
	int i,sum=0;
	for (i = 1; i <= 100; i++)
		sum += i;
	cout <<hex<< sum<<"\n";
	cout << i;
}

**像这样,输出就是13ba和65!而不是13ba和101!**因为cout已经在第一次出现的时候赋予了hex流,所以后面的i的输出也是16进制。若想为十进制,则需改为:

cout<<hex<<sum<<"\n";
cout<<dec<<i;

还有还有!!!

width(int)设置显示宽度
fill(char)设置填充字符
precision(int)设置有效位数(普通)精度(定点或科学计数法)

栗子:
cout.width(5);
cout.fill(‘s’);
cout<<23<<23

输出为:sss2323

注意:
输出的时候只有前面的23受影响,而后面的不受影响。

另外:也可以调用< iomanip >库来更直观表达:

setw(int)设置显示宽度
setfill(char)设置填充字符
setprecision(int)设置有效位数(普通)精度(定点或科学计数法)

具体用法:cout<<setw(6)<<setfill(’ ′ ) < < 27 得 到 : ')<<27 得到: )<<27$$$$$27

三、转移语句

1、break语句

break用于循环语句for、while、do-while,和开关语句switch中。

常见的是在嵌套中,跳出当前if判断语句作用。

但是注意:break只跳出一个循环
栗子:

for(int i; ;)
{
	for(;;)
	{
	......
	if(i=1)
		break;
	}
	a=1;//break跳出到这里
}

2.continue语句

直接举栗子:

for(int n=100;n<=200;++n)
{
	if(n%3==0)
		contimue;
	cout<<n<<endl;
}

当3被整除时,执行continue,结束本次循环,即跳过cout语句。
但是一般用if(n%3!=0)代替。

continue不是必须,但可以为了逻辑上的清晰和美观(看自己啦~)。

3.go to语句(妃常惨

(在?为什么迫害真妃?《辉夜》梗)

几乎用不到的跳跃性语句

用法就不说

但是只用在一个地方
就是有很多层嵌套时,break跳出过于麻烦,可以用go to直接跳转到别的地方。
栗子:

for(...)
{for(...)
	{	if(...)
		go to End;
		else
		{	
			......
		}
	}
}
End:
..........	

好啦今天先到这里了
三千多字打了将近两个半小时

下一篇有可能是一些总结性的栗子
或者
是下一章的内容,数据类型

一切随缘

最后

龙虎一生推!!!!!!(推荐大家看一下那个动漫,很治愈的。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值