使用
如果输入等于答案,则假设此代码在输入时执行。相反,如果我有一个等于0的乘法问题,一旦我从上一个乘法问题中删除了答案(输入为空(,结果就会返回true并执行if语句。我该如何防止这种情况发生?
ngOnInit() { this.multiply(); }
f1 = 0;
f2 = 0;
answer:number = 0;
input:number = 0;
multiply():void{
this.f1 = Math.floor(Math.random() * 12);
this.f2 = Math.floor(Math.random() * 12);
this.answer = this.f1 * this.f2;
console.log(this.answer);
}
checkAnswer(event){
this.input = event.target.value;
if(this.input == this.answer){
console.log(this.input + " " + "is correct!");
this.multiply();
} else{
console.log(this.input + " " + "is incorrect" + " " + this.answer);
}
}
}
使用===
而不是==
所以你的if语句应该是
if(this.input === this.answer){
解释:
==
只比较value
而不比较datatype
===
比较值和数据类型
示例:
'' == 0 => true
(true,因为==
只检查值('' === 0 => false
(false,因为===
同时检查值及其数据类型(
在这里,您可以了解==
和===
之间的差异
重置输入值if,if语句为true。
event.target.value = null;
阻止用户触发输入事件以清除输入。因此,如果this.answer==0并且this.input=="0",则不必运行checkAnswer函数";