Une bonne réponse est :

Non. Le programmer voulait probablement que les trois instructions situées après le else fassent partie du bloc false, mais comme il a oublié de se servir des accolades pour regrouper les instructions, le bloc else ne contient que la première instruction ! Cela illustre le fait qu'il est plus prudent de toujours utiliser les accolades indépendamment du nombre d'instructions contenues dans le bloc.

Seulement une instruction par alternative

Le bloc false n'a pas été enfermé entre deux accolades :
 
    if ( num < 0 )
        System.out.println("Le nombre " + num + " est négatif");   
    else
        System.out.println("Le nombre " + num + " est positif"); 
        System.out.print  ("Les nombres positifs sont supérieurs ");   
        System.out.println("ou égaux à zéro.");     
    System.out.println("Au revoir !");    

Notre indentation montrait ce que nous désirions obtenir, mais le compilateur ne se préoccupe que de la syntaxe. Et le programme ci-dessus sera interprété par le compilateur comme suit :
 

    if ( num < 0 )
        System.out.println("Le nombre " + num + " est négatif");  // alternative true
    else
        System.out.println("Le nombre " + num + " est positif");  // alternative false
    System.out.print  ("Les nombres positifs sont supérieurs ");  // toujours exécutée  
    System.out.println("ou égaux à zéro.") ;                      // toujours exécutée
    System.out.println("Au revoir !");                            // toujours exécutée

QUESTION 7:

Comment répareriez-vous le bug contenu dans le programme ci-dessus ?

Il ne vaut pas chercher midi à quatorze heures ...