0
壞消息大家,混淆「不連續」和「去,繼續」在FORTRAN
我最近開始學習FORTRAN理解一個代碼,並將其轉化爲C++(我
知道什麼碼這對於這個問題並不重要,但要給出一些背景知識,這個代碼利用自適應網格上的搭配方法來解決邊界值問題。
看着代碼,有一些「去」的聲明結合「繼續」
真的讓我困惑。
下面是一個例子:
do 100 i=1, n
C DO SOMETHING HERE
if (some condition) go to 90
C DO SOME MORE STUFF HERE
90 continue
C EVEN MORE STUFF HERE
100 continue
我有一些C編程經驗,所以我會在C作爲
如下代碼我的兩種解釋,但我不知道哪一個(如果有的話!)是正確的翻譯:
for(int i=1;i<=n;i++)
{
//DO SOMETHING HERE
if(some condition) continue;
//DO SOME MORE STUFF HERE
//EVEN MORE STUFF HERE
}
或:
for(int i=1;i<=n;i++)
{
//DO SOMETHING HERE
if(!some condition)
{
//DO SOME MORE STUFF HERE
}
//EVEN MORE STUFF HERE
}
我想知道是否有人可以幫助我理解語法。
謝謝。那麼,只是使用「if-go to」而不是「if .not.-endif」的風格偏好? –
它具有相同的效果,但我不會將它稱爲樣式問題:「GOTO某些標籤」語句的問題是帶有標籤的代碼難以維護,因爲您的程序可以從任何位置跳轉到帶有標籤的語句在該程序中,您可以編寫完全非結構化的代碼,請參閱Dijkstra的信函「Go To Statement Considered Harmful」 –
http://web.archive.org/web /20090320002214/http://www.ecn.purdue.edu/ParaMount/papers/rubin87goto.pdf http://kerneltrap.org/node/553/2131 ...代表對方。 GOTO既不好也不壞。這只是一個聲明。 – Rook