【问题标题】:Use goto statements to explicitly show the flow control through the loop使用 goto 语句显式显示循环中的流控制
【发布时间】:2016-03-16 05:08:56
【问题描述】:

我应该采用以下程序片段并使用 goto 语句来显示循环中的流控制:

for ( int i = n; i > 0; i-- ) {
    if ( x != A[i] )
    break;
}

我意识到应该避免 goto 语句,但这就是问题所要求的。我觉得应该是这样的,这样流控制就通过循环显示出来了:

for ( int i = n; i > 0; i-- ) {
    if ( x != A[i] )
    goto xValue;
    break;
}

xValue: cout << "The value of x: \n" << x;

这是正确的吗?我不确定是否在 break 语句之前或之后放置 goto 语句。

【问题讨论】:

  • 问:为什么不删除“break”?问:你不应该也用 goto 替换 for "for" 循环吗?
  • 那么,您是说用goto 替换for,并完全删除break 语句? @paulsm4
  • 我也将删除 for 循环并将其替换为显式 goto。 for 只是一个 init 块,后跟一个退出条件(基本上是一个 if 和一个 goto),然后是一个主体、一个增量操作和一个 goto 返回到退出条件检查。显然,只是为了分配;)
  • 这就是你的想法吗? @paulsm4 @A.Chiesa goto xValue ( int i = n; i &gt; 0; i--) if ( x !=A[i] ) goto xValue;

标签: loops for-loop goto flow-control


【解决方案1】:

我相信这是这个问题的正确解决方案:

xValue ( int i = n; i > 0; i-- )
      If ( x !=  A[i] )
        goto xValue;

【讨论】:

    猜你喜欢
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2019-02-26
    • 1970-01-01
    • 2015-09-22
    • 2021-07-20
    • 1970-01-01
    • 2022-01-08
    相关资源
    最近更新 更多