Alla programmeringsspråk, oavsett hur olika de ser ut på ytan, är byggda på samma grund: logik. När man säger att ett program "fattar beslut" menar man egentligen att det utvärderar logiska uttryck och förgrenar sig utifrån resultatet. Att förstå den processen är den mest användbara färdighet du kan utveckla som programmerare.

Logik börjar med sant och falskt

På den mest grundläggande nivån förstår en dator inte "ja" eller "kanske". Den förstår exakt två värden: true och false — ofta representerade som 1 och 0. Detta kallas boolesk logik, uppkallad efter matematikern George Boole, som formaliserade reglerna för resonemang med bara två värden redan på 1800-talet.

Varje villkor du skriver i kod, hur komplext det än är, kan i slutändan reduceras till ett av dessa två värden:

5 > 3          // true
"cat" == "dog" // false
isLoggedIn     // true eller false, beroende på tillstånd

Från värden till beslut

Logik blir användbar först när du kopplar ett beslut till den. Det är precis vad en if-sats är: en förgrening som bara körs när ett booleskt uttryck utvärderas till true.

if (age >= 18) {
  grantAccess();
} else {
  denyAccess();
}

Bakom kulisserna "tänker" datorn inte alls på ålder eller åtkomst — den utvärderar ett booleskt uttryck (age >= 18) och följer en av två möjliga vägar. Varje loop, varje villkor, varje guard-klausul du någonsin kommer att skriva följer exakt samma mönster.

Logik kan kombineras

Den verkliga styrkan visar sig när du kombinerar enkla logiska satser till mer komplexa med hjälp av operatorer som AND, OR och NOT:

if (isLoggedIn && hasPermission && !isBanned) {
  showDashboard();
}

Den här enda raden kodar in tre separata logiska fakta och kombinerar dem till ett enda beslut. Att lära sig läsa och skriva sådana uttryck flytande — utan att bli förvirrad över prioritetsordning eller avsikt — är det som skiljer en nybörjare från någon som säkert kan felsöka en snårig kodbas.

Kommer härnäst: vi bryter ner exakt hur AND, OR, NOT och XOR fungerar, med sanningstabeller du kan lära dig utantill på några minuter.

Varför detta är viktigt för felsökning

De flesta "logikbuggar" är inte syntaxfel — de är missmatchningar mellan vad du tror att ett booleskt uttryck utvärderas till och vad det faktiskt utvärderas till. Att lära sig simulera logik mentalt, en operator i taget, är det snabbaste sättet att upptäcka dessa buggar innan du ens kör koden.