C++:将代码重定向到特定位置
C++: Redirect code to certain position
我对C++很陌生。
如何将代码"重定向"到某个位置?
基本上,我应该在这里放什么而不是评论行:
if ( N>1 ) {
// What should be here to make the code start from the beginning?
}
else {
// What should be here to make the code start from certain point?
}
我知道C++不是脚本语言,但是如果代码是作为脚本编写的,我如何重定向它?
谢谢
goto
命令会做你想做的事,但在礼貌圈子里通常不受欢迎:-)
有它的位置,但你可能最好学习结构化编程技术,因为过度使用goto
往往会导致我们所说的意大利面条代码,难以理解、遵循和调试。
如果你的任务是对代码进行最小的更改,听起来它可能已经写得不好了,goto
可能是最好的解决方案:
try_again:
n = try_something();
if (n > 1)
goto try_again;
使用结构化编程,您将拥有以下内容:
n = try_something();
while (n > 1)
n = try_something();
您可能看不到这两种情况之间的太大区别,但那是因为它很简单。如果你最终得到你的标签和goto
语句的严重分离,或者四十二个不同的标签,你会乞求结构化版本。
使用函数、循环等来控制应用程序的"流"。将代码视为可重用的部分,任何要重用的内容都应该放在函数中或循环访问。
下面是一个示例:
void main()
{
int i = 0;
SayHello();
if (i < 1)
{
SayHello();
i++;
}
else
{
SayGoodbye();
}
}
void SayHello()
{
cout << "Hello" << endl;
}
void SayGoodbye()
{
cout << "Goodbye" << endl;
}
我不完全确定"重定向"是什么意思,但请考虑以下几点:
if (N > 1) {
speak();
} else {
do_something_else();
}
正如Paxdiablo已经说过的那样,goto
方法不是好的做法。最好使用执行特定操作的函数,这样调试更容易,并且有人可以实际遵循您的代码正在做什么(或者至少它应该做什么)。
相关文章:
- 将值指定给向量(2D)的向量中的某个位置
- 使用Unreal C++获取VR耳机的世界位置/方向
- 写入位置0x0000000C时发生访问冲突
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 如何使用cudaMallocManaged在指针位置初始化对象?(C++)
- 无法获取webot::PositionSensor对象中位置传感器的值
- 非常量变量只读位置的赋值
- 如何定义更改car类中car位置的方法
- 使用迭代器时如何访问对象在向量中的位置?
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- 求最大元素位置的分治算法
- 你好。。。id_public变量不应该给出结果为 81 和 86 吗?为什么它为两个派生类占用不同的内存位置?
- 是与初始类同一内存位置的重新定位类
- 如何在使用网格布局时重叠qwidgets,并将重叠的widget定位在距离窗口边界特定距离的位置
- 我不知道如何定位最高随机数的位置
- 如何在MFC上设置窗口位置以将其定位到屏幕顶部
- 将QGraphicsSvgItem的中心定位在一个位置上。
- 如何定位WinRT异步方法调用中出现错误的位置
- 重定位表项在平面二进制文件中的存储位置