c++primer学习 1.4.2 for语句

1.4.2书上例题
#include <iostream>
int main()
{
	int sum = 0;
	for (int val = 1; val <= 10; ++val)
		sum += val;
	std::cout << "sum of 1 to 10 inclusive is" << sum << std::endl;
		return 0;
}

for语句包含两个部分:循环头和循环体,循环头控制循环执行次数,由三部分组成,初始化语句,循环条件,表达式。循环持续这一过程直至循环条件为假。


练习1.12
下面的for循环完成了什么功能?sum的终值为多少?

	int sum = 0;
	for (int i = -100; i <= 100; ++i)
		sum += i;
	

答:for循环完成-100到100的所有整数相加过程,sum终值为0

练习1.13

使用for循环完成1.4.1的题。

练习1.9
编写程序,使用for循环将50到100的整数相加

答:

#include <iostream>
int main()
{
	int sum = 0;
	for (int i = 50; i <= 100; ++i)
		sum += i;
	std::cout << "sum of 50 to 100 inclusive is" << sum << std::endl;
		return 0;
}
练习1.10
使用递减运算符在循环中按递减顺序打印出10到0之间的整数。

答:

#include <iostream>
int main()
{
	for (int a = 10; a >= 0; a--)
		std::cout << "按递减顺序打印出10到1之间的整数" << std::endl;
	std::cout<<a<< std::endl;

	  return 0;
}

系统提示出现错误,a是未声明的标识符。但是当我把两个输出放在一起时,程序正常运行

#include <iostream>
int main()
{
	for (int a = 10; a >= 0; a--)
		std::cout << "按递减顺序打印出10到1之间的整数" << a<< std::endl;

	  return 0;
}
猜测是因为输出符号的原因,保留疑问

解除!是因为a是在for循环里定义的,出了for的循环,就无法访问。一个for循环以;结束。

根据"threenewbee"的回答做出代码修改,可以正常运行

#include <iostream>
int main()
{
	int a;
		for (int a = 10; a >= 0; a--)
			std::cout << "按递减顺序打印出10到1之间的整数" ,
		std::cout<<a << std::endl;
	return 0;
}
练习1.11
编写程序,提示用户输入两个整数,打印出两个整数所指定的范围内的所有整数。

答:

#include <iostream>
int main()
{	int a , b ;
	std::cout << "请输入两个整数"  << std::endl;
	std::cin >> a >> b;  
		if (a > b)
		{
			for (; a >= b; a--)
				
			std::cout << "输出两个整数范围内所有整数" << a << std::endl;
		}
		else
		for (; a <= b; a++)
			std::cout << "输出两个整数范围内所有整数" << a << std::endl;
	
	  return 0;
}

刚开始我把cin放到了两个for语句中,无法运行,系统调试说使用了未初始化的局部变量a,b

将cin放到前面后ab变成变量,正常运行:">>"运算符用于从输入流中读取数据,并将其存储到相应的变量中。

for循环的三个省略

for循环的三个语句都可以省略,但不能省略分号

本题用到 for的初始化语句省略,表示不对变量赋初值

三个省略具体如下

https://blog.csdn.net/m0_49025634/article/details/121891789?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169168086116800197042112%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=169168086116800197042112&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-2-121891789-null-null.142^v92^controlT0_1&utm_term=for%E5%88%9D%E5%A7%8B%E5%8C%96%E8%AF%AD%E5%8F%A5%E7%9C%81%E7%95%A5&spm=1018.2226.3001.4187

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值