第五章:迭代语句(for语句、跳转语句)知识点及答案

一、do while语句

do while 语句和while 语句非常相似,唯一的区别是,do while 语句先执行循环体后检查条件。do while 语句应该在括号包围起来的条件后面用一个分号表示语句结束。

 do
      statement
 while (condition);

二、练习题目

 (1)编写一段程序,使用do while循环重复地执行下述任务:首先提示用户输入两个string对象,然后挑出较短的那个并输出它。
									#include <iostream>
									#include <string>
									#include <vector>
									using namespace std;
									int main()
									{
										do
										{
											string My_string1, My_string2;
											cout << "请输入两个字符串" << endl;
											cin >> My_string1 >> My_string2;
											if (My_string1.size() > My_string2.size())
											{
												cout << My_string2 << endl;
											}
											else
											{
												cout << My_string1 << endl;
											}
										} while (cin);
									}

三、跳转语句
C++语言中提供了4中跳转语句:break、continue、goto、和 return 语句
(1)break语句负责终止离它最近的while、do while、for、或者 switch 语句,并从这些语句之后的第一条语句开始执行。break语句只能出现在迭代语句或者switch语句内部。break语句的作用仅限于最近的循环或者switch。

(1)练习答案

   编写一段程序,从标准输入中读取string对象的序列直到出现两个相同的单词或者所有单词都读完为止。使用while循环一次读取一个单词,当一个单词连续出现两次时使用break语句终止循环。输出连续重复出现的单词,或者输出一个消息说明没有任何单词是连续出现的。
							#include <iostream>
							#include <string>
							#include <vector>
							using namespace std;
							 int main()
							{
								string My_string1, My_string2;//此时需要将这两个变量定义出来!!!
								do
								{
									cout << "请输入字符串" << endl;
									cin >> My_string1;
									if (My_string1 == My_string2)//出现连续相同的情况,则输出,退出循环
									{
										cout << "没有任何单词是重复的" << endl;
										break;
									}
									else
										My_string2 = My_string1;
								} while (cin);
							}
	(2)修改上面的程序,使其找到的重复单词必须大写字母开头。
	
							    #include <iostream>    
								#include <string>    
								#include <vector>    
								using namespace std;
								int main()
								{
								
									string My_string1, My_string2;
									int flag = 0;//记录是否有重复单词出现  
									cout << "请输入单词:";
									while (cin >> My_string1)
									{
								
										if (My_string1[0] > 'Z' || My_string1[0] < 'A')
										{
											My_string2 = My_string1;
											cout << "请继续输入单词:"; 
											continue;
										}  
										if (My_string1 == My_string2)
										{
											cout << "重复单词为:" << My_string1 << endl;
											flag = 1;
											break;
										}
										else
											My_string2 = My_string1;
										cout << "请继续输入单词:";
									}
									if (flag == 0)
									{
										cout << "无重复单词出现" << endl;
									}
									system("pause");
								}
								
(3)   知识点1:异常——指运行时程序的反常行为,典型的有:失去数据库连接、遇到意外的输入等。
        知识点2:异常处理—— 在异常被检测出以后,进行异常的处理,主要分为三种:throw表达式、try语句快和异常类
        throw表达式:异常检测部分使用throw表达式来表示它遇到的无法处理的问题。
        try语句块:处理异常,以关键字try开始,以一个或多个catch子句结束。try语句块中代码抛出的异常通常会被catch子句处理。被称为异常处理代码。
       异常类:用于在throw和相关的catch子句之间进行异常信息的传递。


(4)编写一段程序,从标准输入读取两个整数,输出第一个数除以第二个数的结果。

						#include <iostream>
						#include <string>
						#include <vector>
						#include <stdexcept>//标准异常库
						using namespace std;
						int main()
						{
							int a, b;
							cout << "请输入相除的两个整数:";
							while (cin >> a >> b)
							{
								try
								{
									if (b == 0) throw std::runtime_error("被除数不能为0");//runtime_error异常类:只有在运行时才能检测出的问题
									cout << static_cast<double>(a) / b << endl;//考虑到不可以整除产生小数的情况,先将a强制转化为double类型
								}
								catch (runtime_error err)//err是runtime_error类的一个实例
								{
									cout << err.what(); //实例的成员函数,返回内容由编译其决定
										cout << "\n是否需要重新输入? Enter y or n:" << endl;
									char c;
									cin >> c;
									if (!cin || c == 'n')
										break;//break只能用在开关体或者循环体中
								}//简单来说try是检测异常的,如果产生了异常,就throw(抛出)一个异常,然后被catch到,进行异常的处理
								//如果没有catch部分,仅有try,仍然会报错
							}
						}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

N1314N

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值