Utilizei else e if, mas tenho uma duvida na linha 59 onde só consegui fazer funcionar quando estipulei o limite ficando "else if (tempo >=4 && tempo <=6)", caso eu colocar sem o tempo <=6 a bandeira não volta como se ignorase o próximo else que indica "tempo = 0".
Conseguem me ajudar a entender o motivo disso?
<meta charset="utf-8">
<!-- bandeiras.html -->
<canvas width="600" height="400"></canvas>
<script>
    function desenhaBandeiraBrasil() {
        var tela = document.querySelector('canvas');
        var pincel = tela.getContext('2d');
        pincel.fillStyle="green";
        pincel.fillRect(0, 0, 600, 400);
        pincel.fillStyle="yellow";
        pincel.beginPath();
        pincel.moveTo(300, 50);
        pincel.lineTo(50, 200);
        pincel.lineTo(550, 200);
        pincel.fill();
        pincel.beginPath();
        pincel.moveTo(50, 200);
        pincel.lineTo(300, 350);
        pincel.lineTo(550, 200);
        pincel.fill();
        pincel.fillStyle="darkblue";
        pincel.beginPath();
        pincel.arc(300, 200, 100, 0, 2* 3.14);
        pincel.fill();
    }
    function desenhaBandeiraAlemanha() {
        var tela = document.querySelector('canvas');
        var pincel = tela.getContext('2d');
        pincel.fillStyle = 'black';
        pincel.fillRect(0, 0, 600, 133);
        pincel.fillStyle = 'red';
        pincel.fillRect(0, 133, 600, 133);
        pincel.fillStyle = 'yellow';
        pincel.fillRect(0, 266, 600, 133);
    }
    var tempo = 0;
    console.log(tempo);
    function trocaBandeira(){
        if(tempo<=3){
            desenhaBandeiraBrasil();
        } else if (tempo >=4 && tempo <=6){
            desenhaBandeiraAlemanha();
        } else if (tempo >6) {
            tempo = 0;
        }
        tempo++;
    }
    setInterval(trocaBandeira, 1000);
</script> 
            