如何使用 if 语句将句子转换为摩尔斯电码
How to convert a sentence to morse code using if statements
这是我的程序示例。我包括了字母表中所有字母的 else if 语句。此外,continue 之前的 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'd 项必须是表达式 (x == a .OR. y == c) 而不是 (x == a .OR. c)。您需要使用 END IF 来终止 IF-ELSE-THEN 块。并且您的程序必须以 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
这是我的程序示例。我包括了字母表中所有字母的 else if 语句。此外,continue 之前的 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'd 项必须是表达式 (x == a .OR. y == c) 而不是 (x == a .OR. c)。您需要使用 END IF 来终止 IF-ELSE-THEN 块。并且您的程序必须以 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