#theorie1_egal_if.js #White #Dark #txt #download

        
////////////////////
// Base UNE : "=" //
////////////////////

// "=" permet de changer la valeur d'une variable
// console.log permet de voir à l'écran la valeur d'une variable
// alert peut aussi être utilisé pour afficher à l'écran en arrêtant l'exécution

a = 5
// console.log(a) # python 3 : print(a)
a = 6
console.log(a)
// on peut faire des maths
b = a + 1 
c = a + b * 2 // priorité des opérations
d = (a + b) * 2 // parenthèses si nécessaire !
a = a + 1 // a est augmenté de 1
console.log(a)
console.log(b)
console.log(c)
console.log(d)

// pour afficher du texte, il faut le mettre entre guillemets
console.log("fin")

//////////////////////
// Base DEUX : "if" //
//////////////////////

a = 7

if(a < 10) {
    console.log("Coucou")
    console.log("Hello")
}
    
// ici le programme va afficher "Coucou", puis "Hello" seulement si a est plus petit que 10
// sinon, il saute le bloc et donc, ne fait rien 
// un bloc est marqué par des accolades : {}

// un autre exemple, on veut donner 50 points de vie à un personnage, sans dépasser 100...
vie = 75
vie = vie + 50
if(vie > 100) {
    vie = 100
}

// pour afficher plusieurs choses on écrit une virgule
console.log("Votre vie est", vie)

// on peut faire un else, le code ira dans le else si la condition est fausse
if(vie == 100) {
    console.log("You are full !")
} else {
    console.log("You can drink potions.")
}

a = 8
b = 2
// les opérateurs de comparaison sont "<", ">", "<=", ">=", "==", "!=" (différent)
// attention, pour comparer deux valeurs il faut utiliser "=="
// par exemple, ce programme ci

if(a == 5) {
    console.log("Yo")
} else {
    console.log("Da")
}

// affiche "Yo" si a est égal à 5 et "Da" sinon
// essaie de réécrire ce code en utilisant l'opérateur "!=" (différent)

// Dans un if, on peut mettre n'importe quel code
// Comme un "=", un print, ou... un autre if !

if(a == 5) {
    a = 2
    console.log("Yo")
    if(b == 5) {
        console.log("Hello")
    } else {
        console.log("Tada")
    }
} else {
    console.log("Hum")
}
   
console.log(a)
    
// Essaie ce programme avec a=5 b=5, a=5 b=2, a=2 b=2 et voit ce qu'il se passe

// Fais maintenant l'exercice 0 (trier_deux_nombres)
// regarde la correction sur [pythontutor](pythontutor.html)

// Ensuite tu peux faire les exercices 1 à 4 sans lire la suite
// Cependant la suite PEUT être utile pour les exercices suivants

// On peut écrire des conditions combinées avec && (and) et || (or), par exemple :

if(a == 1 && b == 2) {
    console.log("Yo")
} else {
    console.log("Da")
}

// est un programme qui affiche "Yo" si a est égal à 1 et b est égal à 2, sinon Da
// les Deux conditions doivent être vraies
// Celui ci

if(a == 1 || b == 2) {
    console.log("Yo")
} else {
    console.log("Da")
}

// affiche Yo si a est égal à 1 ou b est égal à 2
// ou moins une des deux conditions doit être vraie

// attention, si tu mélanges des && et des ||,
// utilise des parenthèses pour bien préciser l'ordre des opérations

if(a == 2 || b == 2 && c == 2) { // qui du "or" ou du "and" a la priorité ?
    console.log("Yo")
}

// équivalent au précédent : || est "comme" un +, && est "comme" un *
if(a == 2 || (b == 2 && c == 2)) {
    console.log("Yo")
}
    
if((a == 2 || b == 2) && c == 2) {
    console.log("Yo")
}
    
/////////////////////////
// Pour en savoir plus //
/////////////////////////

// =

// des raccourcis pour incrémenter/décrémenter !

a = a + 1
a += 1 // raccourci pour a = a + 1
a -= 1 // raccourci pour a = a - 1
a *= 2 // a = a * 2
// etc.

// floats
a = 2.5

// division entière // et modulo %
// si on divise 14 par 4 on a 3 avec un reste de 2

a = 14 / 4 // 3.5
a = Math.floor(14 / 4) // 3 (arrondi vers le bas)
mod = 14 % 4 // 2, le reste

// plusieurs lignes

// si l'instruction n'est pas finie, on peut passer à la ligne
// je conseille d'ouvrir une parenthèse
x = (5 + 2 * 3
       + 7 * 2
       + 1
       - 2)

// !(not) "inverser" une condition

if(a == 5) { // si a == 5...
    // ne rien faire
} else {
    console.log("a n'est pas égal à 5")
}

// équivalent à

if(!(a == 5)) {
    console.log("a n'est pas égal à 5")
}

// au choix du programmeur, le not peut être simplifié
// !(a == b) ↔ a != b
// !(a < b)  ↔ a >= b (ATTENTION : plus grand ou ÉGAL)
// !(X && Y) ↔ (!X) || (!Y) (ATTENTION : ||)
// !(X || Y) ↔ (!X) && (!Y)

if(!(a == 5 && b < 7)) {
    console.log("not(a == 5 and b < 7)")
}
    
if(a != 5 || b >= 7) { // équivalent au précédent
    console.log("a != 5 or b >= 7")
}

// else if : parfois, on a un "else" qui ne contient qu'une seule instruction, qui est un "if"

if(a < 5) {
    console.log("petit")
} else {
    if(a < 10) {
        console.log("moyen")
    } else {
        if(a < 15) {
            console.log("grand")
        } else {
            console.log("graaaand")
        }
    }
}

// raccourci : else if

if(a < 5) { // si a < 5
    console.log("petit")
} else if(a < 10) { // sinon... si a < 10
    console.log("moyen")
} else if(a < 15) {
    console.log("grand")
} else {
    console.log("graaaand")
}
    
// enlever des accolades
// si un if ou un else a UNE instruction (UN ""), on peut enlever les accolades

if(a == 5) {
    console.log("a")
} else {
    console.log("b")
}

// équivalent au précédent

if(a == 5)
    console.log("a")
else
    console.log("b")
    
// cependant, en tant que débutant, il est conseillé de Toujours mettre les accolades

// boolean: les conditions peuvent être mises dans des variables
// un (booléen) vaut Vrai ou Faux (true / false)

condition = (a < 5)
if(condition == true) {
    console.log("Plus petit !")
} else {
    console.log("Plus grand ou egal")
}
    
// le "if" attend un bool, on peut donc enlever "== true"

condition = a < 5 // parenthèses non nécessaires
if(condition) { // == true enlevé
    console.log("Plus petit")
} else {
    console.log("Plus grand ou egal")
}

// on peut donc faire des "opérations" sur les bool

x = true
y = false
z = x || y // z = true || false = true
n = !x // $n = !true = false
g = a < 5 && z

// if fonctionnel : parfois, on a un "if/else" qui ne fait qu'assigner une variable (et rien d'autre !)

if(a == 5) {
    b = 8
} else {
    b = 3
}

// raccourci: le "if/else" "en une ligne"
b = (a == 5 ? 8 : 3) // même code qu'au dessus

b = a == 5 ? 8 : 3 // parenthèses non nécessaires

c = a == 5 ? 8 :
    a == 2 ? 4 :
    a < 0 ? 1 : 0 // longue chaine !
    
// localité des variables
// nous verrons plus tard que les variables ici sont globales
// pour créer une variable locale, on la déclare avec "var"
var a;
var b = 5;
// il est de bonne pratique de déclarer toutes ses variables avec var au moins une fois
// cette bonne pratique prendra du sens quand nous verrons les fonctions