在 do.while 循环中使用开关,C++

Using a switch in a do..while loop, in C++

本文关键字:开关 C++ do while 循环      更新时间:2023-10-16

一个简单的程序,读取字符串,并使用开关进行响应;

在这个包含开关的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的东西。

  1. 当 switch 中没有大小写为真时,它将默认为 switch 并且您指定 repeat=1; 默认情况下。之后,虽然条件将被检查,它将是真的,因为重复是 1,它将再次去做并检查条件,你的开关函数将返回一些东西,它将进入默认值。

  2. 要解决有关 switchstring() 函数的第二个问题,您必须向代码展示您在该函数中正在执行的操作,以便我可以为您提供最佳建议。