对于循环&if.else语句..我的代码看起来怎么样

for...loop & if..else statements... how does my code look?

本文关键字:语句 else if 我的 代码 怎么样 看起来 amp 于循环 循环      更新时间:2023-09-26

写入从1到90 的数字

使用for loop

当数字可被3整除时,写入"Fizz"

当数字可被5整除时,写入"嗡嗡"

当数字可以被3和5整除时,写下"FizzBuzz"

写下"FizzBuzz"后,显示换行

这是我的代码:

script type="text/javascript">                                                                                                                  
/* <![CDATA[ */ 
    for (var count = 1; count <= 90; ++count ) {
        document.write(count);
        if (count % 3 ==0 && count % 5 == 0)
                document.write("&nbsp; FizzBuzz <br '>")
        else 
            if (count % 3 == 0)
                document.write("&nbsp; Fizz")
        else
            if (count % 5 == 0) 
                document.write("&nbsp; Buzz")
        document.write("<br />")      
    }
/* ]]> */
</script> 

我的问题是,我的代码是用一种最好的方式写的吗?我能做些什么来提高写作效率呢?

您可以使用开关而不是使用if逻辑

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("&nbsp; Fizz"); break;}
      case 'false-true':{ document.write("&nbsp; Buzz"); break;}
      case 'true-true' :{ document.write("&nbsp; FizzBuzz <br>"); break;}
    }
    document.write("<br />")      
}

我在这里做了几件事。首先,我减少了代码量,使所有内容都更可读。其次,我命名了测试结果,以更好地表明它们是什么(可以被3整除,也可以被5整除)。我还更新了代码,以完全反映您所说的需求。你说你只需要在打印FizzBuzz时换行。没有迹象表明你需要任何其他换行符。

我做的最后一件事就是减少多余的测试。如果一个数字可以被3和5整除,它会先打印Fizz(isDivBy3),然后再打印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>