我希望用户输入一个数字。如果用户输入了一个字符,我想抛出一个错误。
我试图解析值。
render() {
return (
<div>
<header className="jumbotron jumbotron-fluid py-4">
<div className="container">
<h1><Link to='/'>Adopt a Pet</Link></h1>
</div>
</header>
<main className="container">
<div className="row">
<div className="col-3">
<AboutNav />
</div>
<div className="col-9">
<Switch>
<Route exact path='/' render={() =>
<PetList pets={this.state.pets} />
} />
<Route exact path='/about' component={AboutPage} />
<Route exact path='/resources' component={ResourcesPage} />
<Redirect to='/' />
</Switch>
</div>
</div>
</main>
<footer className="container">
<small>Images from <a href="http://www.seattlehumane.org/adoption/dogs">Seattle Humane Society</a></small>
</footer>
</div>
);
}
答案 0 :(得分:1)
通过.to_f运行字符串时,字符串的值为0.0,因此添加要求数字大于1的or语句应确保未输入任何字符串。
def pruefeZeitbudget(eingabeZeitaufwand)
@validierungsWert = eingabeZeitaufwand.to_f
loop do
if @validierungsWert > 24 or @validierungsWert < 1
puts 'Wert überschreitet das Tagesmaximum von 24 Stunden. Erneute Eingabe!'
@validierungsWert = gets.chomp.to_f
else
puts 'Eingabe okay.'
break
end
end
end
答案 1 :(得分:1)
您可以使用Float(eingabeZeitaufwand)
。如果输入无效的Float类型,则会引发错误。否则,它将返回浮点值。
完整的代码应该喜欢
def pruefeZeitbudget
begin
@validierungsWert = Float(gets.chomp)
loop do
if @validierungsWert > 24
puts 'Wert überschreitet das Tagesmaximum von 24 Stunden. Erneute Eingabe!'
else
puts 'Eingabe okay.'
break
end
end
rescue
puts "Invalid input"
end
end