Javascript for…循环&if..else语句。。。我的代码看起来怎么样?
写出从1到90的数字 使用for循环 当数字可被3整除时,写嘶嘶声 当数字可被5整除时,写入嗡嗡声 当数字可以被3和5整除时,写FizzBuzz 在您编写FizzBuzz之后,显示换行符 这是我的密码:Javascript for…循环&if..else语句。。。我的代码看起来怎么样?,javascript,if-statement,for-loop,Javascript,If Statement,For Loop,写出从1到90的数字 使用for循环 当数字可被3整除时,写嘶嘶声 当数字可被5整除时,写入嗡嗡声 当数字可以被3和5整除时,写FizzBuzz 在您编写FizzBuzz之后,显示换行符 这是我的密码: script type="text/javascript">
script type="text/javascript">
/* <![CDATA[ */
for (var count = 1; count <= 90; ++count ) {
document.write(count);
if (count % 3 ==0 && count % 5 == 0)
document.write(" FizzBuzz <br \>")
else
if (count % 3 == 0)
document.write(" Fizz")
else
if (count % 5 == 0)
document.write(" Buzz")
document.write("<br />")
}
/* ]]> */
</script>
我的问题是,我的代码是以一种最好的方式编写的吗?
为了更高效地编写它,我可以做些什么不同的事情呢?而不是使用if逻辑,您可以使用switch
for (var count = 1; count <= 90; ++count ) {
document.write(count);
var logics = (count % 3 ==0) + '-' + (count % 5 == 0);
switch(logics){
case 'true-false':{ document.write(" Fizz"); break;}
case 'false-true':{ document.write(" Buzz"); break;}
case 'true-true' :{ document.write(" FizzBuzz <br>"); break;}
}
document.write("<br />")
}
我在这里做了几件事。首先,我减少了代码量,使所有内容都更具可读性。第二,我对测试结果进行了命名,以更好地表明它们可以被3整除,也可以被5整除。我还更新了代码,以完全反映您所述的需求。你说打印FizzBuzz时只需要换行。没有迹象表明您需要任何其他换行符 我做的最后一件事是减少冗余测试。如果一个数字可以被3和5整除,它会先打印Fizz,然后打印Buzz,因为它是isDivBy5,然后会添加换行符
<script type="text/javascript">
for (var count = 1; count <= 90; ++count ) {
var isDivBy3 = !(count % 3);
var isDivBy5 = !(count % 5);
if( isDivBy3 ) document.write('Fizz');
if( isDivBy5 ) document.write('Buzz');
if( isDivBy3 && isDivBy5 ) document.write('<br/>');
}
</script>
您可以将计数%3==0和计数%5==0的结果存储在一个变量中,并在条件中重用它。此问题似乎与主题无关,因为它属于打开状态。听起来好像有人在参加面试测试。计数%3==0只是!计数%3感谢所有输入,很抱歉这是错误的部分,不知道有特定的代码审阅部分。感谢您的回复