这是我的程序示例。我包括字母表中所有字母的 else if 语句。继续之前的 10 也在第 4 列和第 5 列。
我得到的第一个错误是说Invalid radix specifier "or" at (2) for typeless constant at (1)
,2 是 OR 中的 O,1 是"A"、"B"等中的第一个引号。
错误是说同样的事情,但 1 在"a"、"b"等的第二个引号处。
我的第三个也是最后一个错误是说Invalid form for ELSE IF statement at (^)
,胡萝卜在每个陈述的末尾。
假设这些与我只是对If,ELSE IF和DO使用了错误的语法有关;但是搜索互联网并没有帮助我找到正确的语法。
program p1
integer j
integer sentenceSize
character sentence*72
print *, "Enter the size of the sentence you are converting: "
read *, sentenceSize
print *, "Enter the sentence you would like to convert: "
read(*,'(A)') sentence
DO 10, sentenceSize
IF (sentence(i:i) == "A" OR "a")
print *, ".-"
ELSE IF (sentence(i:i) == "B" OR "b")
print *, "-..."
ELSE IF (sentence(i:i) == 'C' OR 'c')
print *, "-.-."
ELSE IF (sentence(i:i) == "D" OR "d")
print *, "-.."
print *, " "
10 continue
您的程序中存在许多语法错误。您的 DO 循环缺少 i=1。您需要将 THEN 放在 IF 和 ELSE IF 语句之后。逻辑 OR 是 .OR。每个 OR'd 项必须是表达式 (x == a .OR. y == c) 而不是 (x == a .OR. c)。您需要终止 IF-ELSE-THEN 块 with 和 END IF。并且您的程序必须以 END 结尾。
program p1
integer j
integer sentenceSize
character sentence*72
print *, "Enter the size of the sentence you are converting: "
read *, sentenceSize
print *, "Enter the sentence you would like to convert: "
read(*,'(A)') sentence
DO 10 i=1, sentenceSize
IF (sentence(i:i) == "A" .OR. sentence(i:i) == "a") THEN
print *, ".-"
ELSE IF (sentence(i:i) == "B" .OR. sentence(i:i) == "b") THEN
print *, "-..."
ELSE IF (sentence(i:i) == 'C' .OR. sentence(i:i) == 'c') THEN
print *, "-.-."
ELSE IF (sentence(i:i) == "D" .OR. sentence(i:i) == "d") THEN
print *, "-.."
END IF
print *, " "
10 continue
END