我正在写有提示输入简单的打折应用程序。这个问题在我的三元运算符 - 它不计算newPrice以及表明输入无效。你能告诉我,我做错了什么?
我如果输入错了,我要分配newPrice为空,并提醒“无效数据”
我的代码:
const price = prompt('Please, enter the price:');
const discount = prompt('Please, enter the discount amount:');
const newPrice = ((9999999 > price > 0) && (99 > discount > 0)) ? (price - price * discount / 100) : (null, alert('Invalid data'));
console.log(newPrice)
尝试分离出的代码语句
undefined
。 (根据您的问题)a > b > c
东西不JS AFAIK工作。请重构是语法我在下面或类似的那样。const price = prompt('Please, enter the price:');
const discount = prompt('Please, enter the discount amount:');
const newPrice = (price && (9999999 > price) && discount && (99 > discount)) ? (price - price * discount / 100) : null;
console.log(newPrice);
if(!newPrice){alert('Invalid data');}
首先,将您输入的数字,二是重构你的条件是有效的(你不能有x > y > z
IIRC):
const price = parseInt(prompt('Please, enter the price:'));
const discount = parseInt(prompt('Please, enter the discount amount:'));
const newPrice = (((9999999 > price) && price) && ((99 > discount) && discount)) ? (price - price * discount / 100) : (null, alert('Invalid data'));
console.log(newPrice);
该提示可以被读取的值作为字符串。将其转换为数字使用parseInt
或一元+
const price = parseInt(prompt('Please, enter the price:'));
const discount = parseInt(prompt('Please, enter the discount amount:'));
const newPrice = ((price && price > 0 && price < 9999999) && (discount && discount >0 && discount < 99 )) ? (price - price * discount / 100) : (null, alert('Invalid data'));
console.log(newPrice)
这里是由两个方法if-else
和三元运算符(?:
)这样做的示例。但我会建议与if-else
去,如果你有多大的决定要素。
var price = prompt('Please, enter the price:');
var discount = prompt('Please, enter the discount amount:');
var newPrice;
if((price>0 && price < 9999999)&&(discount>0 && discount < 99)){
newPrice=price - (price * discount) / 100;
}else{
newPrice='null';
alert('Invalid data');
}
var newPrice1 = ((9999999 > price && price > 0) && (99 > discount && discount > 0)) ? (price - (price * discount) / 100) : ('null', alert('Invalid data'));
console.log(newPrice);
console.log(newPrice1);