在 do.while 循环中使用开关,C++
Using a switch in a do..while loop, in C++
一个简单的程序,读取字符串,并使用开关进行响应;
在这个包含开关的do-while循环中,我能够毫无问题地运行案例1-4,但是一旦我遇到默认情况,程序就会一遍又一遍地循环默认情况,代码如下;
do { switch ( switchstring (entry, input) )
/*the switchstring function is one 1 wrote to convert a given entry(string),
into an input(integer)*/
{
case 1:
//code
repeat = 2;
break;
case 2:
//code
repeat = 2;
break;
case 3:
//code
repeat = 2;
break;
case 4:
//code
repeat = 2;
break;
default:
//code
repeat = 1;
break;}} while(repeat == 1);
第二个问题是关于我的开关字符串()函数; 有没有办法更改开关函数,使其读取;
case (insert string):
即我可以删除整个开关字符串() 函数
提前感谢!
向我们展示switchstring (entry, input)
是如何工作的。
您面临的问题是,在default
中,您执行以下操作:
repeat = 1;
这使得while(repeat == 1)
总是true
.然后switchstring (entry, input)
总是返回一些让你的switch
块总是再次进入default case
的东西。
-
当 switch 中没有大小写为真时,它将默认为 switch 并且您指定 repeat=1; 默认情况下。之后,虽然条件将被检查,它将是真的,因为重复是 1,它将再次去做并检查条件,你的开关函数将返回一些东西,它将进入默认值。
-
要解决有关 switchstring() 函数的第二个问题,您必须向代码展示您在该函数中正在执行的操作,以便我可以为您提供最佳建议。
相关文章:
- 既然存在危险,为什么项目要使用-I include开关
- 为什么这个音频包络不能通过开关的情况?
- 有人知道为什么在开关中使用stoi函数会返回恒定的错误吗
- C 和 C++ 中开关语句的案例标签的常量值,但显示不同的行为
- 在 c++ 中在开关情况下使用和不使用"break"时的不同输出
- 为什么我的开关/机箱在使用枚举时默认?
- 为什么布尔开关语句有编译器警告?
- 如何使用"equal to"以外的评估编写开关语句
- 为什么开关的优化方式与 c/c++ 中的链接不同?
- 无法找到简单的开关大小写枚举错误
- 未达到的情况会影响开关外壳性能
- C++:我的开关盒循环转到第一种情况
- 有没有办法在C++将字符串与开关语句一起使用?
- 开关:无外壳中断
- 带有开关语句的 do-while 循环 -- 无穷循环错误
- 将编译器开关添加到 Eclipse CDT 内置编译器设置生成?
- C++ 我的开关格式中的循环不允许我显示菜单选项或接受输入?
- 如何在开关的情况下使用右值引用
- 如何在不同的开关大小写语句上使用对象的类成员函数?
- 用于验证 Visual Studio 一致性开关对生成的代码的影响的工具