Почему мое состояние всегда оценивается как истинное?

Условный (троичный) оператор является единственным оператором JavaScript, который принимает три операнда. Этот оператор часто используется в качестве ярлыка для оператора if.

condition ? expr1 : expr2 

Если условие истинно, оператор возвращает значение expr1; в противном случае он возвращает значение expr2.

function fact(n) {
  if (n > 1) {
    return n * fact(n-1);
  } else {
    return 1;
  }
  // we can replace the above code in a single line of code as below
  //return (n != 1) ? n * fact(n - 1) : 1;
}
console.log(fact(5));

Дополнительную информацию см. В Ссылка на документ MDN

.

1
задан 03.05.2020, 23:42

3 ответа

Пробелы имеют большое значение в сценариях Whell, вы должны позаботиться о них. Между именем переменной и знаком = и его значением нет пробела.

Перепишите свой сценарий оболочки следующим образом:

#!/bin/bash
ageLimit=34
echo "What is your name?"
read userName
echo "How old are you?"
read userAge
if [[ "$userAge" -le "$ageLimit" ]]; then
    echo "Hey, $userName.  At $userAge years old, you are young."
else
   echo "Gosh, $userName.  At $userAge years old, you're pretty old."
fi

Обратитесь к хорошему руководству по написанию сценариев оболочки, пока вы пачкаете руки. Один хороший урок по поиску в Google:

Вы также можете хочу знать это:

3
ответ дан 03.05.2020, 23:43
  • 1
    Потрясающий, Jobin. Работы красиво. И спасибо за ссылки! I' m любящий изучение этого. Удачного дня! – Suraj Rao 03.05.2020, 23:44

Если вы пытаетесь вычислить две строки, тогда используйте -le -ge, если вы хотите оценить число, я предлагаю вам использовать обычный оператор> < = это общее соглашение и хорошие войны. поэтому в этом случае используйте

if ["$ userAge" -le "$ ageLimit"]; тогда еще фи

0
ответ дан 03.05.2020, 23:44

Я вижу две незначительные ошибки в вашем коде.

[1] Не используйте пробел при объявлении переменной, делайте так

ageLimit=34

[2] Есть два способа задания if условий, используйте любой из них.

if [ "$userAge" -le "$ageLimit" ]; then

или

if (( "$userAge" <= "$ageLimit" )); then
1
ответ дан 03.05.2020, 23:44

Теги

Похожие вопросы