最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Javascript Calculator JS - Switch Case - Stack Overflow

programmeradmin4浏览0评论

I don't understand why the case is not working

var a, b;

a = 0;
b = 0


function Calculatrice(a, b, op) {

  switch (op) {

    alert("Choisissez votre opérateur: ");

    case '+':
      return a + b
      break;
    case '-':
      return a - b
      break;
    case '*':
      return a * b
      break;
    case '/':
      return a / b
      break;

      alert("Voici la valeur finale:");
  }

}

Calculatrice(5, 5, +);

I don't understand why the case is not working

var a, b;

a = 0;
b = 0


function Calculatrice(a, b, op) {

  switch (op) {

    alert("Choisissez votre opérateur: ");

    case '+':
      return a + b
      break;
    case '-':
      return a - b
      break;
    case '*':
      return a * b
      break;
    case '/':
      return a / b
      break;

      alert("Voici la valeur finale:");
  }

}

Calculatrice(5, 5, +);
Share Improve this question edited Oct 10, 2018 at 11:07 user5734311 asked Oct 10, 2018 at 11:06 ClémentClément 331 silver badge7 bronze badges 2
  • 3 try with this Calculatrice(5,5,'+'); – Arun Kumar Commented Oct 10, 2018 at 11:06
  • 1 You should always check your browser console for error messages. You can't run mands like alert() inside a switch block. And you're checking for '+', not + (which is invalid on its own). – user5734311 Commented Oct 10, 2018 at 11:09
Add a ment  | 

3 Answers 3

Reset to default 2

I have reviewed your code and these are the changes done to your code for proper result : 1. Your switch statement had dangling alerts in between, which were not required. 2. I removed your global variables a,b because that is not required in the current function scope. 3. You should pass the operation as string, as that is what is expected in the switch statement.

Here is your working code.

function Calculatrice(a, b, op) {

  switch (op) {

    case '+':
      return a + b
      break;
    case '-':
      return a - b
      break;
    case '*':
      return a * b
      break;
    case '/':
      return a / b
      break;
  
  }

}
console.log(Calculatrice(5, 5, '+'));

  1. Remove alert of body of switch

  2. use of '+' instead of +, when call Calculatrice function.

If you want to get the operator from the user,use prompt() like this:

function Calculatrice(a, b, op) {
  switch (op) {
    case '+':
      return a + b
      break;
    case '-':
      return a - b
      break;
    case '*':
      return a * b
      break;
    case '/':
      return a / b
      break;
  }
}

op = prompt('Choisissez votre opérateur [ + - / * ] :');
var operators = ['+','-','/','*'];

if ( operators.indexOf(op) !== -1 )
  alert('Voici la valeur finale: ' + Calculatrice(5, 5, op) ) ;
else
  alert("L'opérateur est mal!");

var a, b;

a = 0;
b = 0


function Calculatrice(a, b, op) {
  switch (op) {
    case '+':
      return a + b
    case '-':
      return a - b
    case '*':
      return a * b
    case '/':
      return a / b
    default: 
      return "invalid arguments"
  }
}

var result = Calculatrice(5, 5, '+');
console.log("Voici la valeur finale: ", result);
var result = Calculatrice(5, 5, '-');
console.log("Voici la valeur finale: ", result);
var result = Calculatrice(5, 5, '*');
console.log("Voici la valeur finale: ", result);
var result = Calculatrice(5, 5, '/');
console.log("Voici la valeur finale: ", result);
var result = Calculatrice(5, 5, '%');
console.log("Voici la valeur finale: ", result);

发布评论

评论列表(0)

  1. 暂无评论