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的初始化语句省略,表示不对变量赋初值
三个省略具体如下