You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/sr/2-js-basics/3-making-decisions/README.md

232 lines
13 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "888609c48329c280ca2477d2df40f2e5",
"translation_date": "2025-08-28T10:20:20+00:00",
"source_file": "2-js-basics/3-making-decisions/README.md",
"language_code": "sr"
}
-->
# Основе JavaScript-а: Доношење одлука
![Основе JavaScript-а - Доношење одлука](../../../../translated_images/webdev101-js-decisions.69e1b20f272dd1f0b1cb2f8adaff3ed2a77c4f91db96d8a0594132a353fa189a.sr.png)
> Скетч белешка од [Tomomi Imura](https://twitter.com/girlie_mac)
## Квиз пре предавања
[Квиз пре предавања](https://ff-quizzes.netlify.app/web/quiz/11)
Доношење одлука и контрола редоследа извршавања кода чини ваш код поново употребљивим и робусним. Овај одељак покрива синтаксу за контролу тока података у JavaScript-у и њен значај када се користи са Буловим типовима података.
[![Доношење одлука](https://img.youtube.com/vi/SxTp8j-fMMY/0.jpg)](https://youtube.com/watch?v=SxTp8j-fMMY "Доношење одлука")
> 🎥 Кликните на слику изнад за видео о доношењу одлука.
> Ову лекцију можете проћи на [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101-if-else/?WT.mc_id=academic-77807-sagibbon)!
## Кратак преглед Булових вредности
Булови могу имати само две вредности: `true` или `false`. Булови помажу у доношењу одлука о томе које линије кода треба извршити када су одређени услови испуњени.
Поставите своју Булову вредност на true или false овако:
`let myTrueBool = true`
`let myFalseBool = false`
✅ Булови су добили име по енглеском математичару, филозофу и логичару Џорџу Булу (18151864).
## Оператори поређења и Булови
Оператори се користе за процену услова прављењем поређења која ће створити Булову вредност. Следи листа оператора који се често користе.
| Симбол | Опис | Пример |
| ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
| `<` | **Мање од**: Поређује две вредности и враћа Булову вредност `true` ако је вредност са леве стране мања од оне са десне стране | `5 < 6 // true` |
| `<=` | **Мање или једнако**: Поређује две вредности и враћа Булову вредност `true` ако је вредност са леве стране мања или једнака оној са десне стране | `5 <= 6 // true` |
| `>` | **Веће од**: Поређује две вредности и враћа Булову вредност `true` ако је вредност са леве стране већа од оне са десне стране | `5 > 6 // false` |
| `>=` | **Веће или једнако**: Поређује две вредности и враћа Булову вредност `true` ако је вредност са леве стране већа или једнака оној са десне стране | `5 >= 6 // false` |
| `===` | **Строга једнакост**: Поређује две вредности и враћа Булову вредност `true` ако су вредности са десне и леве стране једнаке И истог типа података | `5 === 6 // false` |
| `!==` | **Неједнакост**: Поређује две вредности и враћа супротну Булову вредност од оне коју би вратио оператор строге једнакости | `5 !== 6 // true` |
✅ Проверите своје знање тако што ћете написати нека поређења у конзоли вашег претраживача. Да ли вас неки враћени подаци изненађују?
## If изјава
If изјава ће извршити код између својих блокова ако је услов тачан.
```javascript
if (condition) {
//Condition is true. Code in this block will run.
}
```
Логички оператори се често користе за формирање услова.
```javascript
let currentMoney;
let laptopPrice;
if (currentMoney >= laptopPrice) {
//Condition is true. Code in this block will run.
console.log("Getting a new laptop!");
}
```
## If..Else изјава
`else` изјава ће извршити код између својих блокова када је услов нетачан. Она је опционална уз `if` изјаву.
```javascript
let currentMoney;
let laptopPrice;
if (currentMoney >= laptopPrice) {
//Condition is true. Code in this block will run.
console.log("Getting a new laptop!");
} else {
//Condition is false. Code in this block will run.
console.log("Can't afford a new laptop, yet!");
}
```
✅ Тестирајте своје разумевање овог кода и следећег кода тако што ћете га покренути у конзоли претраживача. Промените вредности променљивих currentMoney и laptopPrice да бисте променили враћени `console.log()`.
## Switch изјава
`switch` изјава се користи за извршавање различитих акција на основу различитих услова. Користите `switch` изјаву да бисте изабрали један од многих блокова кода за извршавање.
```javascript
switch (expression) {
case x:
// code block
break;
case y:
// code block
break;
default:
// code block
}
```
```javascript
// program using switch statement
let a = 2;
switch (a) {
case 1:
a = "one";
break;
case 2:
a = "two";
break;
default:
a = "not found";
break;
}
console.log(`The value is ${a}`);
```
✅ Тестирајте своје разумевање овог кода и следећег кода тако што ћете га покренути у конзоли претраживача. Промените вредности променљиве a да бисте променили враћени `console.log()`.
## Логички оператори и Булови
Одлуке могу захтевати више од једног поређења и могу се повезати логичким операторима да би се произвела Булова вредност.
| Симбол | Опис | Пример |
| ------ | --------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| `&&` | **Логичко И**: Поређује два Булова израза. Враћа true **само** ако су обе стране тачне | `(5 > 6) && (5 < 6 ) //Једна страна је нетачна, друга тачна. Враћа false` |
| `\|\|` | **Логичко ИЛИ**: Поређује два Булова израза. Враћа true ако је бар једна страна тачна | `(5 > 6) \|\| (5 < 6) //Једна страна је нетачна, друга тачна. Враћа true` |
| `!` | **Логичко НЕ**: Враћа супротну вредност Буловог израза | `!(5 > 6) // 5 није веће од 6, али "!" ће вратити true` |
## Услови и одлуке са логичким операторима
Логички оператори могу се користити за формирање услова у if..else изјавама.
```javascript
let currentMoney;
let laptopPrice;
let laptopDiscountPrice = laptopPrice - laptopPrice * 0.2; //Laptop price at 20 percent off
if (currentMoney >= laptopPrice || currentMoney >= laptopDiscountPrice) {
//Condition is true. Code in this block will run.
console.log("Getting a new laptop!");
} else {
//Condition is true. Code in this block will run.
console.log("Can't afford a new laptop, yet!");
}
```
### Оператор негације
До сада сте видели како можете користити `if...else` изјаву за креирање условне логике. Све што уђе у `if` мора се проценити као true/false. Коришћењем оператора `!` можете егирати_ израз. То би изгледало овако:
```javascript
if (!condition) {
// runs if condition is false
} else {
// runs if condition is true
}
```
### Тернарни изрази
`if...else` није једини начин да се изрази логика одлучивања. Такође можете користити нешто што се зове тернарни оператор. Синтакса изгледа овако:
```javascript
let variable = condition ? <return this if true> : <return this if false>
```
Испод је конкретнији пример:
```javascript
let firstNumber = 20;
let secondNumber = 10;
let biggestNumber = firstNumber > secondNumber ? firstNumber : secondNumber;
```
✅ Одвојите минут да неколико пута прочитате овај код. Да ли разумете како ови оператори функционишу?
Горњи код каже:
- ако је `firstNumber` већи од `secondNumber`
- онда додели `firstNumber` променљивој `biggestNumber`
- иначе додели `secondNumber`.
Тернарни израз је само компактнији начин писања кода испод:
```javascript
let biggestNumber;
if (firstNumber > secondNumber) {
biggestNumber = firstNumber;
} else {
biggestNumber = secondNumber;
}
```
---
## 🚀 Изазов
Направите програм који је прво написан са логичким операторима, а затим га препишите користећи тернарни израз. Која синтакса вам више одговара?
---
## Квиз након предавања
[Квиз након предавања](https://ff-quizzes.netlify.app/web/quiz/12)
## Преглед и самостално учење
Прочитајте више о многим операторима доступним кориснику [на MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators).
Прођите кроз сјајан [преглед оператора](https://joshwcomeau.com/operator-lookup/) од Џоша Комоа!
## Задатак
[Оператори](assignment.md)
---
**Одрицање од одговорности**:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције [Co-op Translator](https://github.com/Azure/co-op-translator). Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.