一个简单的程序,它读取字符串,并使用开关进行响应;
在这个包含开关的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()函数
提前感谢!
答案 0 :(得分:0)
告诉我们switchstring (entry, input)
的工作原理。
您面临的问题是,在default
中您执行以下操作:
repeat = 1;
这使得while(repeat == 1)
总是true
。然后switchstring (entry, input)
总会返回一些内容,使switch
块始终再次成为default case
。
答案 1 :(得分:0)
如果在开关中没有任何情况,那么它将在默认情况下进入开关并指定repeat = 1;在默认情况下。在此之后,条件将被检查并且它将是真实的因为重复是1,它将继续执行并检查条件,您的开关功能将返回某些内容并且它将变为默认值。
要解决有关switchstring()函数的第二个问题,你必须向你的代码展示你在该函数中正在做什么,这样我才能给你最好的建议。