0
let rachunek = prompt('Podaj cene rachunku');
    
switch(rachunek) {
    case rachunek >=50 && rachunek <= 300:
        console.log('Cena rachunku wynosi ' + rachunek + ' zł ' + 'natomiast napiwek wynosi' + rachunek * 0,15 + ' zł');
        break;

    case rachunek < 50 && rachunek > 300:
        console.log('Cena rachunku wynosi ' + rachunek + ' zł ' +'natomiast napiwek wynosi' + rachunek * 0,2 + ' zł');
        break;

    default:
        console.log('Złe dane');
}

I don't know what's wrong, because terminal always shows me only 2 zł tip.

Filburt
  • 17,626
  • 12
  • 64
  • 115
Pewniaczek
  • 81
  • 1
  • 1
  • 5

2 Answers2

0

let rachunek = prompt('Podaj cene rachunku');

switch(true) {
case rachunek.length >=50 && rachunek.length <= 300:
    console.log('Cena rachunku wynosi ' + rachunek + ' zł ' + 'natomiast napiwek wynosi' + rachunek * 0,15 + ' zł');
    break;
case rachunek.length < 50 && rachunek.length > 300:
    console.log('Cena rachunku wynosi ' + rachunek + ' zł ' +'natomiast napiwek wynosi' + rachunek * 0,2 + ' zł');
    break;
default:
    console.log('Złe dane');
}

Your switch expression must be true event check your length string please

let rachunek = prompt('Podaj cene rachunku');

switch(true) {
case rachunek.length >=50 && rachunek.length <= 300:
    console.log('Cena rachunku wynosi ' + rachunek + ' zł ' + 'natomiast napiwek wynosi' + rachunek * 0,15 + ' zł');
    break;
case rachunek.length < 50 && rachunek.length > 300:
    console.log('Cena rachunku wynosi ' + rachunek + ' zł ' +'natomiast napiwek wynosi' + rachunek * 0,2 + ' zł');
    break;
default:
    console.log('Złe dane');
}
0

Switch doesn't calculate, just compare. if should be used to calculate.

let rachunek = prompt('Podaj cene rachunku');
 
    if( parseInt(rachunek) >=50 && parseInt(rachunek) <= 300){
        console.log('Cena rachunku wynosi ' + rachunek + ' zł ' + 'natomiast napiwek wynosi' + rachunek * 0,15 + ' zł');
        }
       else if (parseInt(rachunek) < 50 && parseInt(rachunek) > 300){
        console.log('Cena rachunku wynosi ' + rachunek + ' zł ' +'natomiast napiwek wynosi' + rachunek * 0,2 + ' zł');
        } else {
         console.log('Złe dane');
        }
      

  
 

Here is the logic use of switch.

let result = "0"
if( parseInt(rachunek) >=50 && parseInt(rachunek) <= 300){
       result = "between50and300";
        }
       else if (parseInt(rachunek) < 50 && parseInt(rachunek) > 300){
         result = "notbetween50and300";
        } else {
         result = "default";
        }
switch(result) {
    case "between50and300":
        console.log('Cena rachunku wynosi ' + rachunek + ' zł ' + 'natomiast napiwek wynosi' + rachunek * 0,15 + ' zł');
        break;

    case "notbetween50and300":
        console.log('Cena rachunku wynosi ' + rachunek + ' zł ' +'natomiast napiwek wynosi' + rachunek * 0,2 + ' zł');
        break;

    default:
        console.log('Złe dane');
}
flakerimi
  • 2,580
  • 3
  • 29
  • 49