Console.WriteLine

Download Report

Transcript Console.WriteLine

‫ניתוח מערכות מידע‬
‫תכנות ב ‪C#‬‬
‫נעים להכיר‪...‬‬
‫‪1‬‬
#C ‫תוכנית ראשונה ב‬
using System;
class FirstProgram
{
static void Main(string[] args)
{
Console.WriteLine("Let's Learn C#");
}
}
2
‫;‬
‫‪ ‬בסוף כל פקודה יש‬
‫;‬
‫‪3‬‬
‫משתנים )‪(variables‬‬
‫‪ ‬משתנה הוא שם של מקום בזכרון‪.‬‬
‫‪ ‬משתנה מוגדר ע"י הגדרת השם שלו והטיפוס שלו‪.‬‬
‫‪‬‬
‫טיפוס – מתאר את סוג המידע שהמשתנה יחזיק‪.‬‬
‫שם )‪(variable name‬‬
‫טיפוס )‪(data type‬‬
‫;‪int total‬‬
‫;‪int count, temp, result‬‬
‫‪‬‬
‫‪‬‬
‫‪4‬‬
‫ניתן לאתחל משתנים בהצהרה‬
‫ניתן אף לאתחל מספר משתנים יחד‬
‫;‪int sum = 0‬‬
‫;‪int base = 32, max = 149‬‬
‫השמה )‪(assignment‬‬
‫‪ ‬השמה משנה ערך של משתנה‬
‫‪ ‬אופרטור ההשמה הוא הסימן =‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫;‪total = 25‬‬
‫‪ total‬מקבל את הערך ‪.25‬‬
‫הערך שהיה בתוך ‪ total‬נמחק‬
‫‪ ‬אפשר לשים רק ערך שמתאים לטיפוס של המשתנה‪.‬‬
‫‪5‬‬
‫דוגמא משתנים והשמה‬
using System;
...‫ להוסיף‬
class Program
{
static void Main(string[] args)
{
int x = 5;
int y;
y = 2 * x;
Console.WriteLine(y);
}
}
6
‫פקודת הקלט והערות‬
‫‪ – ReadLine ‬קורא שורה‬
‫‪‬‬
‫השורה נקראת כמחרוזת (‪)String‬‬
‫‪‬‬
‫‪‬‬
‫אם רוצים לקרוא מספר יש להמיר (נראה בהמשך)‬
‫ניתן להשתמש בסוף תוכנית כדי לגרום למסך הריצה להשאר‬
‫‪‬‬
‫יצא כשנלחץ ‪return‬‬
‫‪ ‬רישום הערות‬
‫‪// this is a comment‬‬
‫‪/* this is a comment‬‬
‫‪On more than one line*/‬‬
‫‪7‬‬
‫ טיפול בקלט ופלט‬- ‫דוגמא‬
using System;
class IOProgram
{
static void Main(string[] args)
{
Console.WriteLine("Please Type Something:");
String x;
x = Console.ReadLine();
Console.WriteLine("You typed {0}" , x );
Console. ReadKey();
}
}
8
‫‪WriteLine‬‬
‫‪ ‬מדפיס למסך את מה שנמצא בין גרשיים "‪"XXX‬‬
‫‪ ‬ניתן לשלב טיפול במשתנים‬
‫‪‬‬
‫הם ממוספרים לפי סדר הופעתם‬
‫;) ‪Console.WriteLine("You typed {0}" , x‬‬
‫‪‬‬
‫ידפיס את הערך של ‪x‬‬
‫;) ‪Console.WriteLine("You typed {0,1}" , x , y‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫ידפיס את הערך של ‪ x‬ואז את הערך של ‪y‬‬
‫ניתן לשרשר מחרוזות ע"ישימוש ב ‪+‬‬
‫;(‪Console.WriteLine)"You typed “ + x + y‬‬
‫‪9‬‬
‫‪‬‬
‫‪‬‬
‫ידפיס גם כן את הערך של ‪ x‬ואז את הערך של ‪y‬‬
‫‪‬‬
‫קלט של מספרים‬
using System;
class numberProgram
{
static void Main(string[] args)
{
String x;
int y;
Console.WriteLine("Enter a number:");
x = Console.ReadLine();
y = int.Parse(x);
Console.WriteLine("You typed {0}" ,x);
Console.WriteLine("Adding 2 makes: {0} or {1}", x+2, y+2 );
Console. ReadKey();
}
}
10
‫טיפוסים‬
‫ מספרים שלמים‬- integers
byte, short, int, long… 
‫ מספרים בעלי נקודה עשרונית‬- floating point
float, double… 
‫ מחרוזות‬- strings
String 
‫ כל דבר בין " " אוטומטית יוגדר מחרוזת‬
‫ תוים בודדים‬- characters
char, ‘a’ ‘\0’ ‘\n’ … 
‫ בוליאני‬- boolean
)false ‫ או‬true ‫(מקבל ערך‬Boolean 





11
‫טבלת תוים מיוחדים לשימוש במחרוזות‬
‫התו‬
‫משמעות‬
\’
Single Quote
\”
Double Quote
\\
Backslash
\0
Null, not the same as the C #null value
\a
Bell
\b
Backspace
\f
form Feed
\n
Newline
\r
Carriage Return
\t
Horizontal Tab
\v
Vertical Tab
12
‫ביטויים מתמטים‬
‫‪ ‬פעולות מתמטיות‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫מוגדרות על טיפוסים מסוג ‪ integer‬ו‪floating point -‬‬
‫‪( +‬חיבור)‬
‫ (חיסור)‬‫* (כפל)‬
‫‪( /‬חילוק)‬
‫‪‬‬
‫‪‬‬
‫‪( %‬שארית‪ ,‬נקרא גם מודולוס)‬
‫‪‬‬
‫‪13‬‬
‫(כמו \ ב ‪)VB‬‬
‫(כמו ‪ Mod‬ב ‪)VB‬‬
‫פקודת ‪if‬‬
‫פקודת ‪ if‬נכתבת באופן הבא‪:‬‬
‫הביטוי )‪ (condition‬חייב להיות ביטוי‬
‫בוליאני – כלומר ערכו אמת ‪ true -‬או‬
‫שקר ‪false -‬‬
‫‪if‬‬
‫מילה שמורה‬
‫) ‪if ( condition‬‬
‫;‪statement‬‬
‫אם הביטוי )‪ (condition‬אמת )‪ (true‬מבוצעת ההצהרה )‪(statement‬‬
‫אם הביטוי )‪ (condition‬שקר )‪ (false‬מדלגים על ההצהרה )‪(statement‬‬
‫‪14‬‬
if-else ‫פקודת‬
.if-else ‫ ולייצר פקודת‬else ‫ פקודת‬if ‫ ניתן להוסיף לפקודה‬
if ( condition )
statement1;
else
statement2;
statement1 ‫ בצע את‬true ‫ הוא‬condition ‫ אם ערך הביטוי‬
statement2 ‫ בצע את‬false ‫הוא‬condition ‫ אם ערך הביטוי‬
‫ אבל לא שניהם‬statement2 ‫ או‬statement1 ‫ יבוצע או‬
15
if - ‫דוגמא‬
using System;
class ifProgram
{
static void Main(string[] args)
{
string x;
x = Console.ReadLine();
if (x == "a" || x == "A")
Console.WriteLine("A is for apple");
else if (x == "b" || x == "B")
Console.WriteLine("B is for Boy");
else
Console.WriteLine("Not defined");
Console.ReadKey();
}
}
16
‫ביטויים בוליאנים‬
‫‪ ‬אופרטורים של השוואה המחזירים ערך בוליאני‬
‫==‬
‫=!‬
‫<‬
‫>‬
‫=<‬
‫=>‬
‫‪( equal to‬שווה)‬
‫‪( not equal to‬לא שווה)‬
‫‪( less than‬קטו מ)‬
‫‪( greater than‬גדול מ)‬
‫‪( less than or equal to‬קטן או שווה ל)‬
‫‪( greater than or equal to‬גדול או שווה ל)‬
‫‪ ‬שימו לב להבדל בין האופרטור = לאופרטור ==‬
‫‪17‬‬
‫אופרטורים לוגיים‬
‫‪ ‬בביטויים בוליאנים אפשר להשתמש גם באופרטורים לוגיים‪.‬‬
‫!‬
‫&&‬
‫||‬
‫‪Logical NOT‬‬
‫‪Logical AND‬‬
‫‪Logical OR‬‬
‫‪ ‬האופרטורים הלוגיים מקבלים אופרנדים בוליאנים ומחזירים‬
‫תוצאה בוליאנית‬
‫‪ ‬האופרטור ‪ NOT‬הוא אופרטור אונרי ‪-‬פועל רק על אופרנד אחד‬
‫‪ ‬האופרטורים ‪ AND, OR‬הם אופרטורים בינרים כלומר פועלים‬
‫על שני אופרנדים‬
‫‪18‬‬
C# ‫ ל‬VB ‫הבדלים בין אופרטורים של‬
Purpose
VB.NET
C#
Integer division
\
/
Modulus (division returning only the
remainder)
Mod
%
Exponentiation
^
n/a
Integer division Assignment
\=
/=
Concatenate
=&NEW
+=
Modulus
n/a
%=
Bitwise-AND
n/a
&=
Bitwise-exclusive-OR
n/a
^=
Bitwise-inclusive-OR
n/a
|=
Equal
=
==
Not equal
><
!=
Compare two object reference variables
Is
==
Compare object reference type
TypeOf x Is Class1
x is Class
1
Concatenate strings
&
+
Shortcircuited Boolean AND
AndAlso
&&
Shortcircuited Boolean OR
OrElse
||
Scope resolution
.
.and base
19
C# ‫ ל‬VB ‫הבדלים בין אופרטורים של‬
...‫המשך‬
Purpose
VB.NET
C#
Array element
)(
] [
Type cast
Cint ,CDbl ,... ,CType
(type)
Postfix increment
n/a
++
Postfix decrement
n/a
--
Logical-NOT
Not
!
One's complement
Not
~
Prefix increment
n/a
++
Prefix decrement
n/a
--
Size of type
n/a
sizeof
Bitwise-AND
And
&
Bitwise-exclusive-OR
Xor
^
Bitwise-inclusive-OR
Or
|
Logical-AND
And
&&
Logical-OR
Or
||
Conditional
If Function)(
:?
Pointer to member
n/a
( .Unsafe mode only)
20
‫קבוצת הצהרות‬
‫‪ ‬ניתן לקבץ יחד מספר הצהרות שיבוצעו אם הביטוי‬
‫בפקודת ה ‪ if‬הוא אמת‪ .‬נשתמש בסוגריים { } על מנת‬
‫לתחום את ההצהרות‪.‬‬
‫)‪if (total > MAX‬‬
‫{‬
‫;)"!!‪Console.WriteLine ("Error‬‬
‫;‪errorCount++‬‬
‫}‬
‫‪ ‬ניתן גם בפקודות אחרות ב ‪ C#‬לקבץ מספר הצהרות‬
‫באותו אופן‪.‬‬
‫‪21‬‬
‫לולאת ‪for‬‬
‫‪ ‬סינטקס של פקודת ‪:for‬‬
‫‪statement‬‬
‫הצהרה מבוצעת עד שהתנאי‬
‫‪condition‬‬
‫נהיה שקר‬
‫‪initialization‬‬
‫אתחול‬
‫מבוצע פעם אחת‬
‫לפני תחילת ביצוע הלולאה‬
‫) ‪for ( initialization ; condition ; increment‬‬
‫;‪statement‬‬
‫‪increment‬‬
‫הוספה מבוצעת בסוף כל‬
‫איטרציה (סיבוב של הלולאה)‬
‫‪22‬‬
‫הגדרת משתנה באתחול‬
‫)‪for (int count=1; count <= 5; count++‬‬
‫;)‪Console.WriteLine(count‬‬
‫‪ ‬ניתן להגדיר משתנה בתוך חלק האתחול‪.‬‬
‫‪23‬‬
for - ‫דוגמא‬
using System;
class ifProgram
{
static void Main(string[] args)
{
for (int i = 0; i < 100; i++)
Console.WriteLine("The square root of {0} is {1} ", i, Math.Sqrt(i) );
Console.ReadKey();
}
}
24
for ‫) בלולאת‬increment( ‫הוספה‬
for (int num=0; num < 100; num ++)
Console.WriteLine (num);
‫ בחלק הוספה ניתן לבצע כל פעולה‬
for (int num=0; num <100; num += 5)
Console.WriteLine (num);
for (int num=100; num > 0; num -= 5)
Console.WriteLine (num);
25
‫לולאת ‪while‬‬
‫‪ ‬סינטקס של פקודת ‪:while‬‬
‫) ‪while ( condition‬‬
‫;‪statement‬‬
‫‪ ‬אם התנאי ‪ condition‬הוא 'אמת' אז ההצהרה ‪statement‬‬
‫מתבצעת‬
‫‪ ‬אח"כ התנאי נבדק שוב אם ערכו עדיין 'אמת' ההצהרה מבוצעת שוב‬
‫‪ ‬ההצהרה מבוצעת שוב ושוב עד שהתנאי נהיה 'שקר'‬
‫‪26‬‬
‫;‪int count = 1‬‬
‫)‪while (count <= 5‬‬
‫{‬
‫;)‪Console.WriteLine(count‬‬
‫;‪count++‬‬
‫}‬
‫דוגמא לשימוש בלולאה – בדיקת קלט‬
‫‪ ‬הבעיה‪:‬‬
‫‪ ‬רוצים לקלוט מספרים מהמשתמש‬
‫‪ ‬דרוש לקלוט מספרים בטווח מסויים‬
‫‪ ‬פתרון‪:‬‬
‫‪ ‬נשתמש בלולאה‬
‫‪ ‬כל עוד לא קיבלנו קלט מתאים‬
‫‪ ‬נבקש ונקלוט קלט נוסף‬
‫‪27‬‬
while - ‫דוגמא‬
using System;
class FirstProgram
{
static void Main(string[] args)
{
int NUM_GAMES = 12;
int won;
double ratio;
Console.WriteLine("Enter num of games won (0 to {0})", NUM_GAMES);
string tmp = Console.ReadLine();
won = int.Parse(tmp);
while (won < 0 || won > NUM_GAMES)
{
Console.WriteLine ("Invalid input. Please reenter: ");
tmp = Console.ReadLine();
won = int.Parse(tmp);
}
ratio = (double)won / NUM_GAMES;
Console.WriteLine ("Winning percentage is: {0}", ratio);
}
}
28
do ‫דוגמא ללולאת‬
int count = 0;
do
{
count++;
Console.WriteLine (count);
} while (count < 5);
‫ יודפס‬
12345
!‫ מבוצע לפחות פעם אחת‬do ‫ הגוף של לולאת‬
29
switch ‫פקודת‬
switch
‫וגם‬
case
‫מילים שמורות‬
switch ( expression )
{
case value1 :
statement-list1
jump-statement
case value2 :
statement-list2
jump-statement
case value3 :
statement-list3
jump-statement
...
}
expression ‫אם‬
value2-‫מתאים ל‬
‫הבקרה עוברת לכאן‬
30
‫שימוש ב ‪ break, default‬בתוך ‪switch‬‬
‫‪ ‬ב ‪ C#‬חייבים להשתמש‬
‫בפקודת קפיצה כפקודה‬
‫האחרונה ברשימת הפקודות‬
‫‪‬‬
‫למשל ‪break, continue‬‬
‫‪ ‬ניתן ומקובל לייצר מקרה של‬
‫ברירת מחדל בשם ‪default‬‬
‫‪‬‬
‫‪31‬‬
‫גם כאן יש להשתמש‬
‫בפקודת קפיצה‬
‫)‪switch (option‬‬
‫{‬
‫‪case 'A':‬‬
‫;‪aCount++‬‬
‫;‪break‬‬
‫‪case 'B':‬‬
‫;‪bCount++‬‬
‫;‪break‬‬
‫‪case 'C':‬‬
‫;‪cCount++‬‬
‫;‪break‬‬
‫‪default:‬‬
‫;‪break‬‬
‫}‬
int grade, category;
Console.WriteLine("Enter a numeric grade (0 to 100): ");
string tmp = Console.ReadLine();
grade = int.Parse(tmp);
category = grade / 10;
switch (category)
{
case 10:
Console.WriteLine("Perfect score. Well done.");
break;
case 9:
Console.WriteLine("Well above average. Excellent.");
break;
case 8:
Console.WriteLine("Above average. Nice job.");
break;
case 7:
Console.WriteLine("Average.");
break;
default:
Console.WriteLine("Study some more.");
break;
}
32
‫מערכים ב‪#C‬‬
‫‪33‬‬
‫מערך (תזכורת?)‬
‫‪ ‬נניח שרוצים אוסף של משתנים מאותו הסוג‬
‫‪ ‬למשל‪ :‬רשימת ציונים‪ ,‬רשימת סטודנטים‬
‫‪ ‬מתאים להשתמש במערך‬
‫‪79 87 94 82 67 98 87 81 74 91‬‬
‫‪Id: 444‬‬
‫‪Sivan‬‬
‫‪0 courses‬‬
‫‪34‬‬
‫‪Id: 333‬‬
‫‪Liat‬‬
‫‪2 courses‬‬
‫‪Id:111‬‬
‫‪Id: 222‬‬
‫‪Michal‬‬
‫‪Ronit‬‬
‫‪2 courses 3 courses‬‬
‫‪grades‬‬
‫‪students‬‬
‫מערך – הצהרה ויצירה‬
‫‪ ‬ניתן להצהיר על מערך באופן הבא‪:‬‬
‫;‪int[] scores‬‬
‫‪‬‬
‫הצהרה כנ"ל מגדירה רק קיום של מערך ללא המערך עצמו‬
‫‪‬‬
‫‪ scores‬מצביע כעת לכתובת ‪null‬‬
‫‪ ‬אם רוצים לייצר מופע (‪ )instance‬של המערך נשתמש ב ‪:new‬‬
‫;]‪scores = new int[10‬‬
‫‪ ‬זה יגדיר מערך של ‪int 10‬‬
‫‪35‬‬
‫דוגמאות להצהרה ויצירה‬
int[] prices = new int[500];
bool[] flags;
int length = 20;
flags = new bool[length];
char[] codes = new char[1750];
:‫מערך שגודלו נקבע בזמן ריצה‬
int n = int.Parse(Console.ReadLine());
int[] a = new int[n];
36
‫מערכים – גישה לתא בודד‬
‫‪9‬‬
‫‪8‬‬
‫‪7‬‬
‫‪6‬‬
‫‪5‬‬
‫‪4‬‬
‫‪3‬‬
‫‪2‬‬
‫‪1‬‬
‫‪0‬‬
‫‪79 87 94 82 67 98 87 81 74 91‬‬
‫‪scores‬‬
‫‪ ‬מתיחסים לתא בודד במערך ע"י [ ] (סוגריים מרובעים)‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫למשל ]‪ scores[3‬מתיחס לתא הרביעי במערך‪ ,‬וערכו ‪.82‬‬
‫התא הראשון הוא ]‪scores[0‬‬
‫המערך הזה הוא של ‪ int‬ולכן בתא בודד ניתן להשתמש כמו כל ‪int‬‬
‫אחר‬
‫;]‪int a = scores[2‬‬
‫;‪mean = (scores[0] + scores[1])/2‬‬
‫;)]‪Console.WriteLine ("Top = " + scores[5‬‬
‫‪37‬‬
‫אורך מערך‬
‫‪‬‬
‫‪‬‬
‫‪ Length‬מייצג את מספר האיברים במערך‬
‫;‪int a = scores.Length‬‬
‫‪‬‬
‫‪‬‬
‫ל ‪ a‬יהיה הערך ‪10‬‬
‫;)‪Console.WriteLine(scores.Length‬‬
‫‪ ‬ידפיס ‪10‬‬
‫‪ ‬שימו לב‪:‬‬
‫‪‬‬
‫‪ Length‬מכיל את מספר האיברים ולא האינדקס הכי גבוה!‬
‫‪‬‬
‫‪38‬‬
‫האינדקס הכי גבוה הוא ‪Length-1‬‬
‫רשימת אתחול‬
‫‪ ‬ניתן ליצור מערך ולמלא בו ערכים ע"י שימוש ברשימת‬
‫אתחול‬
‫}‪int[] units = {147, 323, 89, 933, 540, 269, 97, 114‬‬
‫;}'‪char[] letterGrades = {'A', 'B', 'C', 'D', 'F‬‬
‫‪ ‬הערכים מופרדים ע"י פסיק‬
‫‪ ‬גודל המערך נקבע לפי אורך הרשימה‬
‫‪ ‬אין צורך להשתמש ב ‪new‬‬
‫‪ ‬אפשר להשתמש ברשימת אתחול רק בזמן הגדרת המערך‬
‫‪39‬‬
‫דוגמא ‪ - 1‬הדפסת כל האיברים במערך‬
‫‪ ‬יש לעבור על המערך (נעבור על כל התאים שלו)‬
‫‪‬‬
‫אורכו ‪arr.Length‬‬
‫‪ ‬נדפיס את התוכן של התא‬
‫;}‪int[] arr = {1,2,3,4,5‬‬
‫)‪for(int i =0; i<arr.Length; i++‬‬
‫{‬
‫;)]‪Console.WriteLine(arr[i‬‬
‫}‬
‫‪40‬‬
‫דוגמא ‪ – 2‬שימוש בפונקציה‬
‫‪ ‬נגדיר מערך‬
‫‪ ‬נמלא במספרים את המערך‬
‫‪ ‬נשתמש בפונקציה לחיפוש במערך‬
‫‪‬‬
‫הפונקציה תחזיר לנו את המיקום של איבר במערך‬
‫‪ ‬נדפיס את מיקום האיבר שחיפשנו‬
‫‪41‬‬
main - 2 ‫דוגמא‬
static void Main(string[] args)
{
int[] arr; //define array pointer
arr = new int[10]; // allocate space for array
//fill array
for (int i = 0; i < 10; i++)
arr[i] = i*10;
//look for a number in the array, and print its place
int result, num1 = 20;
!‫שימו לב‬
‫נגדיר פונקציה‬
‫שמחפשת במערך‬
result = find(arr, num1); //call the function find
if (result != -1)
{//check the result returned from the function
Console.WriteLine(" the number {0} is in place {1}", num1, result);
}
}
42
‫ הפונקציה‬- 2 ‫דוגמא‬
static int find(int[] arr, int num)
{
for(int i=0; i<arr.Length; i++)
{
if (arr[i] == num)
return i;
}
return -1;
}
43
?‫ – איך מרכיבים את הכל‬2 ‫דוגמא‬
class Program
{
static int find(int[] arr, int num)
{
find ‫התוכן של הפונקציה‬
}
static void Main(string[] args)
{
Main ‫התוכן של הפונקציה‬
}
}
44
‫פתיחת פרויקט ‪#C‬‬
‫‪45‬‬
46
‫הסברים נוספים לטבלת תווים מיוחדים‬
‫לשימוש במחרוזות‬
‫‪ – Single Quote‬מוסיף גרש במחרוזת‬
‫’\‬
‫‪ – Double Quote‬מוסיף גרשיים במחזורת‬
‫”\‬
‫‪ – Backslash‬מוסיף קו לכסוני במחרוזת‬
‫‪47‬‬
‫\\‬
‫‪ – value null‬תו ריק באמצע המחרוזת‪ ,‬נראה‬
‫כמו רווח‪.‬‬
‫‪\0‬‬
‫‪ – Bell‬גורם לצלצול‬
‫‪\a‬‬
‫‪ – Backspace‬מוחק תו אחד במחרוזת‬
‫‪\b‬‬
‫‪ - form Feed‬מעבר לדף הבא – רלוונטי‬
‫בהדפסה‬
‫‪\f‬‬
‫‪ - Newline‬עובר שורה חדשה במחרוזת‬
‫‪\n‬‬
‫‪ – Carriage Return‬חוזר לתחילת שורה‬
‫‪\r‬‬
‫‪ – Horizontal Tab‬מוסיף רווח של טאב‬
‫‪\t‬‬
‫‪ – Vertical Tab‬אמור לרדת למטה – הוראה‬
‫למדספת‬
‫‪\v‬‬
‫ביטויים מתמטיים – הערה על חילוק‬
)VB ‫ (חילוק) (כמו \ ב‬/ 
‫אם רוצים שהתוצאה לא תתעגל צריך להמיר לטיפוס עשרוני‬

int x = 5;
int y =3;
int z = 4;
double ans;
ans= x / y;
Console.WriteLine("answer is: " + ans);
ans = (double)x / y;
Console.WriteLine("casting to double is: " + ans);
48
‫הערה על = ו ==‬
‫‪ = ‬פירושו השמה‬
‫‪ == ‬פירושו השוואה‬
‫‪‬‬
‫לכן הקומפיילר מודיע על שגיאה אם כותבים‬
‫)‪if (x=y‬‬
‫נכון לרשום‪:‬‬
‫)‪if (x==y‬‬
‫‪49‬‬