Menu
Coddy logo textTech

קדימות אופרטורים

חלק מהיחידה יסודות במסלול ה-PHP של Coddy. שיעור 20 מתוך 71.

כאשר ביטוי מכיל כמה אופרטורים, PHP פועלת לפי סדר מסוים שנקרא קדימות אופרטורים. בדיוק כמו במתמטיקה, כפל וחילוק מתבצעים לפני חיבור וחיסור.

<?php
echo 5 + 3 * 2; // פלט: 11, לא 16
?>

PHP מכפילה קודם את 3 × 2 (ומקבלת 6), ואז מוסיפה 5. אילו לאופרטורים הייתה אותה רמת קדימות, החישוב היה מתבצע משמאל לימין: 5 + 3 = 8, ואז 8 × 2 = 16. אבל כך זה לא עובד.

הנה סדר הקדימויות שלמדת, מהגבוה לנמוך, עבור האופרטורים:

עדיפותאופרטורים
הגבוהה ביותר** (העלאה בחזקה)
גבוהה* / %
נמוכה+ -

כדי לשנות את סדר ברירת המחדל, השתמשו בסוגריים. פעולות בתוך סוגריים תמיד מחושבות תחילה:

<?php
echo (5 + 3) * 2;  // פלט: 16
echo 2 ** 3 * 2;   // פלט: 16 (8 * 2)
echo 2 ** (3 * 2); // פלט: 64 (2^6)
?>

כשיש ספק, השתמש בסוגריים כדי להבהיר את כוונותיך. כך הקוד שלך יהיה קל יותר לקריאה, ותימנע מתוצאות בלתי צפויות.

challenge icon

אתגר

קל

קראו שלושה מספרים מהקלט: a, b ו-c.

חשבו והדפיסו את התוצאה של הביטוי הבא, תוך שימוש בסוגריים כדי להבטיח שהחיבור יתבצע לפני הכפל:

(a + b) * c ** 2

כלומר: תחילה חברו את a ואת b, ואז הכפילו את הסכום הזה ב-c בחזקת 2.

דוגמה:

אם הקלט הוא 2, 3 ו-4, הפלט צריך להיות 80 כי:

  • תחילה, חברו 2 + 3 = 5
  • לאחר מכן, חשבו 4 ** 2 = 16
  • לבסוף, הכפילו 5 * 16 = 80

נסו בעצמכם

<?php
// קרא את הקלט
$a = intval(fgets(STDIN));
$b = intval(fgets(STDIN));
$c = intval(fgets(STDIN));

// TODO: כתוב את הקוד שלך למטה כדי לחשב (a + b) * c ** 2

// הדפס את התוצאה
echo $result;
?>
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר PHP אונליין