אינדקס מדריך JAVASCRIPT

משפטי switch

 

משפטי switch

משפטי switch הם למעשה שדרוג של משפטי ה-if שלמדנו במדריך הקודם, הרעיון במשפטי switch הוא למצמצם את כמות הקוד שלנו ולייעל אותו ולהפוך אותו ליותר נוח וקל.

את קוד ה-switch נתחיל עם המילה הנ"ל ולה נתן מידע כלשהו יחיד. בהמשך בכל "תנאי" נציב מידע מסויים שיוכל להחזיר אמת. אם לא נציב מצב כברירת מחדל שיקרה במידה וכל המצבים האחרים מחזירים שקר.

דוגמא לקטע קוד:
			<script type="text/javascript">
			switch(a)
			{
			case 1:
				//code 1
				break;
			case 2:
				//code  2
				break;
			default:
				//default code 3
			}
			</script>

הרעיון פה פשוט, a הוא משתנה עם מידע מסויים ובעזרת המילה case (עם נקודותיים לאחר הערך שאחננו בודקים במקרה הזה 1 או 2) אנחנו בודקים אם אותו ארוע מחזיר אמת למספר שהזנו במקרה הראשון 1 או במקרה השני 2. המספרים הם רק דוגמא פשוטה, הקוד יחפש בתאמה כך שאם a הוא 2 אז קטע הקוד 2 ירוץ. במילה break אנחנו משתמשים (עם נקודה פסיק!) כדי לבצע עצירה של הקוד על מנת שלא ימשיך ויבדוק את התנאים האחרים (לא תמיד נשתמש בזה.

הנה קטע קוד שבודק למה המשתנה a שווה (הגדרנו אותו ל-2 בקוד) וכך זה נראה:

			<script type="text/javascript">
			var a = 2;
			switch(a)
			{
			case 1:
				document.write("var a is 1");
				break;
			case 2:
				document.write("var a is 2");
				break;
			default:
				document.write("var a is unknow");
			}
			</script>

השתמשנו בפקודה write על מנת לבצע הדפסה של מלל כלשהוא במצבים שונים, במקרה הזה קטע הקוד השני
יהיה זה שיודפס "var a is 2" (המילה var בתרגום מאנגלית זה "משתנה").

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

קטע הקוד הבא קצת יותר שימושי, הכנסנו בעזרת פונקציית ה-date את הערך המספרי של אותו היום בשבוע (מ-0 יום ראשון עד 6 יום שבת) ובכל מצב (בכל case) נדפיס את השם של אותו היום.

			<script type="text/javascript">
			var day=new Date();
			var today=day.getDay();
			switch(today)
			{
			case 0:
				document.write("Today is Sunday");
				break;
			case 1:
				document.write("Today is Monday");
				break;
			default:
				document.write("unknow..");
			}
			</script>
המשתנה today מכיל את המספר מ-0 עד 6 של אותו היום וב-case אנחנו מחפשים התאמה כלשהי. אבל כאן עשיתי רק יום ראשון שני וברירת מחדל "לא ידוע", אני ממליץ לכם להוסיף עוד תנאים של שאר הימים עד ליום שבת שמספרו אמור לצאת לכם 6. אם היום לא יום שני או ראשון אז בקטע הקוד (המוגבל) הזה יצא לכם unknow לכן כדאי שאתם תוסיפו את השאר.