Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran 意外的垃圾?_Fortran - Fatal编程技术网

Fortran 意外的垃圾?

Fortran 意外的垃圾?,fortran,Fortran,我是Fortran新手(我的意思是我5分钟前就开始了),我一直在胡闹,我知道如何打印开始/结束程序和if语句的if部分。不过,我遇到的问题是另一部分。它不断出现错误: ELSE() print *, "x did not = 1" 1 Error: Unexpected junk after ELSE statement at (1) 这是我的密码: program hello x = 1 IF(x==1) print *, "Hello" IF(x==1) x=2 IF(x==1)

我是Fortran新手(我的意思是我5分钟前就开始了),我一直在胡闹,我知道如何打印开始/结束程序和if语句的if部分。不过,我遇到的问题是另一部分。它不断出现错误:

ELSE() print *, "x did not = 1"
    1
Error: Unexpected junk after ELSE statement at (1)
这是我的密码:

program hello
x = 1
IF(x==1) print *, "Hello"
IF(x==1) x=2
IF(x==1) print *, "Oh it didnt work..."
ELSE() print *, "x did not = 1 yay it worked"
end program hello

示例代码的正确结构应类似于:

        program hello

        x = 1
        if( x == 1) print *, 'hello'
        if( x == 1) x=2
 25     if( x == 1) then
            print *, "oh it didn't work..."
        else
            print *, "x did not = 1 yay it worked"
        endif

        end program hello
请注意,第25行中的if语句后跟'then'关键字,而you选项被else语句所除


此外,行号也不是必需的。我只是在这里使用它,以便在我的答案中引用这一行。

在您的
ELSE
后面加括号的目的是什么?错误消息正指向它们。我假设你有一本Fortran手册在线或硬拷贝来参考正确的语法。起初我写它时没有括号,但同样的错误发生了。我只是想看看这是否有什么不同,但事实并非如此。鉴于您是在“几分钟前”开始学习这门语言的,我建议您查看文档,而不是胡乱猜测。你会更快更准确地学习这门语言。你可能会比在这里发布更快地找到答案。
ELSE
是块构造的一部分。因此,前面的if语句需要一个
,然后在它后面是
,print语句在它自己的行上运行。然后对于else,没有括号,print语句放在下一行(希望缩进,这样看起来很好),然后一行是
endif
语句。这里不需要行号。此外,海报使用自由形式,是否有任何理由切换到固定形式?我还建议添加
implicit none
并声明x。我只是在这里使用了行号,以便在我的答案中引用该行。@jmh非常感谢它的工作!所以为了澄清,我需要在最后一个if之后加上一个“then”,然后再加上一个“else”?是的。你可以像上面的前两行那样做一个没有“then”的if,也可以像我们使用的那样做一个“if-then-else”结构。你也可以有一个if-then-endif,没有其他的。你用的是什么代码编辑器?许多人都有fortran语法意识,会在出现的地方做出适当的解释。