首页 > 解决方案 > 为什么我使用 switch 的程序总是默认

问题描述

我的程序总是输出不应该发生的测试。它就像程序正在跳过案例以立即进入默认状态。我不明白为什么会这样。我花了 30 分钟才找到解决方案,但我不明白为什么会这样。

谢谢你帮助我!

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');
}

标签: javascript

解决方案


你在做ani.toLowerCase。应该是ani.toLowerCase()。同时删除返回 1。


推荐阅读