我试图从用户定义的功能中检索数据,但我无法这样做。
例如,我有两个用户定义函数
getPosition:为了根据用户输入知道图表上的位置
printPosition:为了根据图表的位置显示信息
例如,对于我的getPosition
,我做了一个简单的if else语句
char getPosition (float x, float y){
char position;
if (x > 0 && y > 0)
position = 1;
else if (x < 0 && y > 0)
position = 2;
......
return position;
接下来,我尝试printPosition
使用切换案例
switch(position)
{
case '1' : cout << "==> (" << x << ", " << y << ") is above X-axis" << endl;
cout << "==> It is at first quadrant" << endl;
break;
case '2' : cout << "==> (" << x << ", " << y << ") is above X-axis" << endl;
cout << "==> It is at second quadrant" << endl;
break;
.......
}
因此,在有两个用户定义函数后,我试图调用getPosition
中的值来打印printPosition
printPosition(x, y, getPosition(x,y));
但是,它不会产生任何输出。为什么会如此。
提前感谢您的帮助。
答案 0 :(得分:4)
要么改变:
position = 1;
position = 2;
...
要:
position = '1';
position = '2';
...
或改变:
case '1':
case '2':
...
要:
case 1:
case 2:
...
答案 1 :(得分:0)
有
position = '1';
position = '2';
您还应该在switch语句中始终使用default语句,因为这有助于您了解没有执行任何case语句,这是一种简单的调试方法。
可以这样实现:
switch(position)
{
case '1':
//whatever
break;
case '2':
//whatever
break;
default:
//Can have a message like:
cout << "The value was not in any of the case statements" << endl;
//No break needed for default statements
}