如何将switch语句放入javascript代码中?
我正忙着制作一个漂亮的工具,用来测量点击时的心跳,然后点击后,它会告诉你终端用户的平均心率如何将switch语句放入javascript代码中?,javascript,jquery,Javascript,Jquery,我正忙着制作一个漂亮的工具,用来测量点击时的心跳,然后点击后,它会告诉你终端用户的平均心率 它工作正常,当10次点击结束时,它将考虑我的数组并计算一个平均值和警报();具有平均值的用户 我现在想做的不是用平均心率提醒终端用户,而是用诊断提醒他们。因此,当平均值等于59以下的值时,它应该发出警报(“你的心脏是有效的和合适的”);如果超过100,则应保持警惕(“你的心脏无效…”);你明白了 我的问题:我似乎无法确定将switch语句放在何处,因为错误会告诉我:找不到变量(我想在switch语句中使用
它工作正常,当10次点击结束时,它将考虑我的数组并计算一个平均值和警报();具有平均值的用户
我现在想做的不是用平均心率提醒终端用户,而是用诊断提醒他们。因此,当平均值等于59以下的值时,它应该发出警报(“你的心脏是有效的和合适的”);如果超过100,则应保持警惕(“你的心脏无效…”);你明白了 我的问题:我似乎无法确定将switch语句放在何处,因为错误会告诉我:找不到变量(我想在switch语句中使用),或者当我将switch语句放在其他地方时,它会用默认情况提醒用户 我是否应该使用 av=平均值/=计数 我的switch语句?我想让它做的就是,根据案例发出警报,所有警报都基于平均值。 我的代码: <script>
var lastTapSeconds = 0;
var bpm = 0;
//extra variabelen voor functionaliteit uitbreiding.
var beats = [];
var average = 0;
var count = 0;
var tapDiv = document.getElementById("tapDiv");
$(tapDiv).on('click', function() {
var tapSeconds = new Date().getTime();
bpm = ((1 / ((tapSeconds - lastTapSeconds) / 1000)) * 60);
lastTapSeconds = tapSeconds;
tapDiv.innerHTML = '<h1 style="display:inline;">' + Math.floor(bpm) + '</h1><img style="height:256px;width:256px;" src="img/heart.png"/>';
//extra functionaliteit
beats.push(Math.floor(bpm));
average *= count; //average = average * count
average += Math.floor(bpm); //average = average + count
count++;
average /= count; //average = average / counterIncrement
//als array entries 10 heeft bereikt geef prompt met gemiddelde bpm.
if(beats.length >= 10) {
//alert("Your Average Beats Per Minute: " + average);
var av = average /= count;
switch(av) {
case (average>60 && avarage<100):
alert("From the measurements, we conclude that you have a normal resting heart rate.");
break;
case (average<59):
alert("From the measurements, we conclude that you have an efficient heart function and better cardiovascular fitness.");
break;
case (average>100):
alert("From the measurements, we conclude that your resting heart has an high average, we might be stated as unefficient and not fit.");
break;
default:
alert("Please measure again, your measurements seem unregular.");
break;
}
var bpm = 0;
var average = 0;
}
});
无开关语句的正常工作代码:
<script>
var lastTapSeconds = 0;
var bpm = 0;
//extra variabelen voor functionaliteit uitbreiding.
var beats = [];
var average = 0;
var count = 0;
var tapDiv = document.getElementById("tapDiv");
$(tapDiv).on('click', function() {
var tapSeconds = new Date().getTime();
bpm = ((1 / ((tapSeconds - lastTapSeconds) / 1000)) * 60);
lastTapSeconds = tapSeconds;
tapDiv.innerHTML = '<h1 style="display:inline;">' + Math.floor(bpm) + '</h1><img style="height:256px;width:256px;" src="img/heart.png"/>';
//extra functionaliteit
beats.push(Math.floor(bpm));
average *= count; //average = average * count
average += Math.floor(bpm); //average = average + count
count++;
average /= count; //average = average / counterIncrement
//als array entries 10 heeft bereikt geef prompt met gemiddelde bpm.
if(beats.length >= 10) {
alert("Your Average Beats Per Minute: " + average);
}
});
</script>
var lastTapSeconds=0;
var-bpm=0;
//额外的变量或功能。
var=[];
var平均值=0;
var计数=0;
var tapDiv=document.getElementById(“tapDiv”);
$(tapDiv).on('click',function(){
var tapSeconds=new Date().getTime();
bpm=((1/((点击秒数-最后点击秒数)/1000))*60);
lastTapSeconds=tapSeconds;
tapDiv.innerHTML=''+数学地板(bpm)+'';
//额外功能
拍、推(数学地板(bpm));
平均数*=计数;//平均数=平均数*计数
平均值+=数学地板(bpm);//平均值=平均值+计数
计数++;
平均值/=计数;//平均值=平均值/反增量
//als数组条目10 heeft bereikt geef提示符合gemiddelde bpm。
如果(拍长>=10){
警惕(“你每分钟的平均节拍:+平均值”);
}
});
更新后的代码:
<script>
var lastTapSeconds = 0;
var bpm = 0;
//extra variabelen voor functionaliteit uitbreiding.
var beats = [];
var average = 0;
var count = 0;
var tapDiv = document.getElementById("tapDiv");
$(tapDiv).on('click', function() {
var tapSeconds = new Date().getTime();
bpm = ((1 / ((tapSeconds - lastTapSeconds) / 1000)) * 60);
lastTapSeconds = tapSeconds;
tapDiv.innerHTML = '<h1 style="display:inline;">' + Math.floor(bpm) + '</h1><img style="height:256px;width:256px;" src="img/heart.png"/>';
//extra functionaliteit
beats.push(Math.floor(bpm));
average *= count; //average = average * count
average += Math.floor(bpm); //average = average + count
count++;
average /= count; //average = average / counterIncrement
//als array entries 10 heeft bereikt geef prompt met gemiddelde bpm.
if(beats.length >= 10) {
//alert("Your Average Beats Per Minute: " + average);
var av = average /= count;
switch(av) {
case (average>60 && avarage<100):
alert("From the measurements, we conclude that you have a normal resting heart rate.");
break;
case (average<59):
alert("From the measurements, we conclude that you have an efficient heart function and better cardiovascular fitness.");
break;
case (average>100):
alert("From the measurements, we conclude that your resting heart has an high average, we might be stated as unefficient and not fit.");
break;
default:
alert("Please measure again, your measurements seem unregular.");
break;
}
var bpm = 0;
var average = 0;
}
});
var lastTapSeconds=0;
var-bpm=0;
//额外的变量或功能。
var=[];
var平均值=0;
var计数=0;
var tapDiv=document.getElementById(“tapDiv”);
$(tapDiv).on('click',function(){
var tapSeconds=new Date().getTime();
bpm=((1/((点击秒数-最后点击秒数)/1000))*60);
lastTapSeconds=tapSeconds;
tapDiv.innerHTML=''+数学地板(bpm)+'';
//额外功能
拍、推(数学地板(bpm));
平均数*=计数;//平均数=平均数*计数
平均值+=数学地板(bpm);//平均值=平均值+计数
计数++;
平均值/=计数;//平均值=平均值/反增量
//als数组条目10 heeft bereikt geef提示符合gemiddelde bpm。
如果(拍长>=10){
//警惕(“你每分钟的平均节拍:+平均值”);
var av=平均值/=计数;
开关(av){
case(average>60&&average您的开关是错误的。您应该在使用开关时读取。每个case:part应该有一个变量av的可能值。而不是一个条件值。例如,在您的情况下,av被检查(average>60&&average<100)因此,除非av本身为真或假,否则您的切换没有意义
您应该使用常规的if语句来解决此问题。这不能用开关来完成。最好使用多个if-else
语句:
if ( average > 60 && average < 100 )
alert( "From the measurements, we conclude that you have a normal resting heart rate." );
else if ( average < 59 )
alert( "From the measurements, we conclude that you have an efficient heart function and better cardiovascular fitness." );
else if ( average > 100 )
alert( "From the measurements, we conclude that your resting heart has an high average, we might be stated as unefficient and not fit." );
else
alert( "Please measure again, your measurements seem unregular." );
if(平均值>60&&average<100)
警惕(“通过测量,我们得出结论,您的静息心率正常。”);
否则,如果(平均值<59)
警惕(“通过测量,我们得出结论,您的心脏功能和心血管健康状况良好。”);
否则,如果(平均值>100)
警惕(“根据测量结果,我们得出结论,您的静息心脏平均值较高,我们可能会被认为是无效和不合适的。”);
其他的
警惕(“请重新测量,您的测量结果似乎不规则。”);
代码中的问题是case
中的值是在运行时计算出来的,并且变得相等true
或false
。因此每次default
部分都应该执行尝试使用“if”而不是“switch”switch(av){case>(average>60&&avaragevery low content,有很多错误,如@CraicerJack所说,按顺序检查边界是正常的,所以你不需要在第一个语句中检查两个边界条件。此外,根据所写的条件,你错过了范围[59,60]。哇,我有多愚蠢……非常感谢,我真的学到了:)