2015-07-06 2 views
0

Я новичок в stackOverflow. У меня есть вопрос. Почему мой код не работает ... он вложен, если инструкции, которые должны работать ... Я в тупике. У вас должны быть деньги, дом (тип от 1 до 3) и телефон. Проблема с телефоном. callLine используется для указания, какая строка будет отображаться каждый раз, когда вызывается callText. Он добавляет 1 к себе каждый раз, когда он вызывается в Calling2. Всякий раз, когда он достигает определенного числа, он меняет callText (текст отображается) на что-то еще. Но с переменной callWho (работа или дом) она также должна быть проверена. Вот он:Помощь с вложенными операторами if

@ echo off 
set money=10000 
set house=1 
set item=Phone 
set /a callLine=0 
setlocal enabledelayedexpansion 
echo Hello there! I am Joe, and I am the mayor of Redcrest Town. 
pause 
cls 
echo I'm so happy to see another resident move into the Redcrest Town. 
echo So, will you do me a favour and tell me your name? 
set /p Name= 
cls 
echo Well then, %name%! Welcome! 
pause 
cls 
echo I hope you have a great time here. You have 10,000 dollars, and a small house. 
echo Please enjoy your time here! 
pause 
cls 
:UsePhone 
echo Money: %money% 
echo. 
echo You are using your phone. This will cost money, each time you call. 
echo. 
echo. 
echo __i   [CONTACT LIST] 
echo ^|---^|  [1: HOME  ] 
echo ^|[_]^|  [2: WORK  ] 
echo ^|:::^|  
echo ^|:::^|  
echo `\ \ 
echo \_=_\ 
set /p callWho=Select Number: 
if %callWho% == 2 goto Calling 
echo %callText% 
pause 
:Calling 
cls 
echo Calling...... 
ping localhost -n 4 >nul 
:Calling2 
if callLine == 0 if %callWho% == 2 set callText="Hello? Is this %name%?" 
if callLine == 1 if %callWho% == 2 set callText="Oh hello! It's really nice to talk to you again." 
if callLine == 2 if %callWho% == 2 set callText="Well, I will see you soon, %name%! Bye!" 
if callLine == 3 if %callWho% == 2 set callText="END" 
set /a callLine = callLine + 1 
cls 
echo __i   
echo ^|---^|  
echo ^|[_]^| PHONE: %callText% 
echo ^|:::^|  
echo ^|:::^|  
echo `\ \ 
echo \_=_\ 
ping localhost -n 5 >nul 
if %callText% == "END" goto UsePhone 
goto Calling2 

Я продолжаю сбой с:. неожиданно в это время .... Действительно необычный.

+0

Что, кажется, проблема с кодом? Например, не работает ли он должным образом или у него есть ошибка, которую вы можете отправить? – UnknownOctopus

+0

Проводка остальных – IMustBeSomeone

ответ

1

Вы забыли %% около callLine.

:Calling2 
if %callLine% == 0 if %callWho% == 2 set callText="Hello? Is this %name%?" 
if %callLine% == 1 if %callWho% == 2 set callText="Oh hello! It's really nice to talk to you again." 
if %callLine% == 2 if %callWho% == 2 set callText="Well, I will see you soon,  %name%! Bye!" 
if %callLine% == 3 if %callWho% == 2 set callText="END" 
set /a callLine = callLine + 1 

При тестировании переменных с if заявления, переменные должны быть заключены в%%

Смежные вопросы