我正在尝试创建一个batch
程序,将输入添加到232,然后将结果除以470.如果有人告诉我如何制作它以便用户输入的话也会很好一个字母而不是数字或无效字符,除了数字之外的任何东西,程序都会执行“goto命令”。谢谢!
PS当前代码输出0,无论输入如何。
继承我的代码:
@echo off
title Grade
:1
cls
set /p input= "Grade: "
set /a input1= input + 232
set /a input2= input1 / 470
echo %input2%
pause
goto 1
答案 0 :(得分:0)
对于您的除法方程,批处理文件不支持浮点运算,因此您无法获得真正的答案。任何小于238的输入都会为你的商返回0。
这里有一些代码可以让您了解如何保证数字输入。
:Blurb
@Echo off
Cls
Echo Grade Math
:GetNum
Echo.
Set /p _Input="Grade: "
Set "_Num="
For /f "delims=0123456789" %%i in ("%_Input%") Do Set "_Num=%%i"
If Defined _Num Echo.&Echo Invalid: please enter a number.&Goto :GetNum
:DoMath
Set /a _Sum= _Input + 232
Echo Sum = %_Sum%
Set /a _Quotient= _Sum / 470
Echo Quotient = %_Quotient%
Pause
Goto :GetNum
:End