Skip to content
Advertisement

Why my program using switch always go to default

My program always outpout test which should not happen. Its like the program is skipping the case to go to default right away. I don’t understand why it does that. I’ve spent 30 mins to find a solution but I can’t understand why it does that.

Thanks for helping me !

var ani;
let ans;
let prix;
var total;
var arm1;
var arm2;
let nombrearmure;
nombrearmure = 0;
ani = prompt("Entrez votre type d'animal : ");
switch (ani.toLowerCase) {
case 'c' :
    ans = prompt('Voulez vous acheter une épée pour 100$ ? : ');
    if (ans.toLowerCase() === 'o'){
        prix = 100;
        nombrearmure = 1;
    } else {
        if (ans.toLowerCase() === 'n') {
            console.log('Épée refusé');
        } else {
            console.log('Réponse non valide');
            
        }
    
    }
    ans = prompt('Voulez vous acheter une corne de licorne pour 500 $ ? : ');
    if(ans.toLowerCase() === 'o'){
        prix = prix+500;
        nombrearmure = nombrearmure + 2;
    } else {
        if (ans.toLowerCase() === 'n'){
            console.log('Corne de licorne refusé');
        } else {
            console.log('Réponse invalide');
            
        }
    }

    break;
case 'l' :
    ans = prompt('Voulez vous acheter un casque(100-200$) : ');
    if (ans.toLowerCase() === 'o'){
        ans = parseInt(prompt('Appuyez sur 1 pour un casque noir (100$) ou 2 pour un casque multicolore (200$) : '));
        switch(ans){
            case 1 :
                prix = 100;
                nombrearmure = 1;
                break;
            case 2 :
                prix = 200
                nombrearmure = 2;
                break;
            default :
            console.log('Réponse invalide')
            return 1;
        }
    } else {
        if(ans.toLowerCase === 'n'){
            console.log('Casque refusé');
        } else {
            
        }
    }
default:
    console.log('test');
}

Advertisement

Answer

You are doing ani.toLowerCase. It should be ani.toLowerCase(). Also remove the return 1.

Advertisement