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

时间:2015-06-18 04:22:57

标签: c++ switch-statement do-while

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

在这个包含开关的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);

第二个问题是关于我的switchstring()函数;有没有办法改变开关功能,使其读取;

    case (insert string):

即。这样我就可以删除整个switchstring()函数

提前感谢!

2 个答案:

答案 0 :(得分:0)

告诉我们switchstring (entry, input)的工作原理。

您面临的问题是,在default中您执行以下操作:

repeat = 1;

这使得while(repeat == 1)总是true。然后switchstring (entry, input)总会返回一些内容,使switch块始终再次成为default case

答案 1 :(得分:0)

  1. 如果在开关中没有任何情况,那么它将在默认情况下进入开关并指定repeat = 1;在默认情况下。在此之后,条件将被检查并且它将是真实的因为重复是1,它将继续执行并检查条件,您的开关功能将返回某些内容并且它将变为默认值。

  2. 要解决有关switchstring()函数的第二个问题,你必须向你的代码展示你在该函数中正在做什么,这样我才能给你最好的建议。