所以我正在尝试编写一个基本的计算机程序。我在使用一些语法时遇到了一些麻烦。代码如下。
@echo off
cls
color 71
:start
echo -----------------------------------
echo Welcome to Tandy's Calculator! v0.1
echo -----------------------------------
echo Enter your first number below
echo Type "help" to see the list of available commands
echo -----------------------------------
set /p "_input1=Please Enter The First Number or Command:"
cls
goto subroutine
:subroutine
:: the below line gives me the "goto was unexpected at this time" error
if /i "%_input1%"=="help" goto help1
if /i "%_input1%"=="back" goto _input1
if /i "%_input1%"=="clear" goto clearVar (
goto checkVar
)
每次执行文件时都会收到错误消息 “goto此时出乎意料”,命令窗口关闭。
使用pause命令我已经能够找到程序中我收到错误消息的部分。这已在该计划中得到评论。
任何人都可以帮助我吗?我的语法出了什么问题?
答案 0 :(得分:2)
试试这个:
if /i "%_input1%"=="clear" goto clearVar
goto checkVar
这是无效的语法。
if /i "%_input1%"=="clear" goto clearVar (
goto checkVar
)
答案 1 :(得分:1)
设置变量似乎解决了我遇到的问题。 我只是简单地在程序的开头初始化变量
::command bank
set help=help
set back=back
set clear=clear
::methods
set add=add
set subtract=subtract
set multiply=multiply
set divide=divide
然后我将if语句改为看起来像这样
:subroutine2
if /i "%action%"=="%help%" goto help2
if /i "%action%"=="%back%" goto back2
if /i "%action%"=="%clear%" goto clearVar
if /i "%action%"=="%add%" goto _input2
if /i "%action%"=="%subtract%" goto _input2
if /i "%action%"=="%multiply%" goto _input2
if /i "%action%"=="%divide%" (goto _input2) else (goto functionerror)
这消除了我遇到的语法错误。问题似乎是它没有在“If”命令语法中识别object2。将用户选项初始化为变量,然后为这些变量提供用户为初始化命令而键入的完全相同的字符串,就可以解决问题。
如果有人想要完整的代码,以便他们可以进一步了解该程序,我的意思只是让我知道,我可以通过电子邮件发送/粘贴它以供将来参考。
答案 2 :(得分:1)
试试这个:
if /i "%_input1%"=="clean" (
goto cleanVar
) ELSE (
goto checkVar
)