Transcript lab_3_java
1
שימוש בחלון דיאלוג
• עד כה השתמשנו בחלון הקלט על מנת לקבל
אינפורמציה מהמשתמש (ע"י שימוש ב)Scanner
ובחלון הפלט על מנת להציג הודעות למשתמש
(ע"י שימוש ב) System.out.println
• כעת נלמד להשתמש בתיבות דו שיח ( dialog
)boxesכדרך אלטרנטיבית לבצע פעולות אלו
• אנחנו נלמד דרך קלה להציג תיבות דו שיח בעזרת
המחלקה JOptionPane
2
שימוש בחלון דיאלוג(המשך)
• ראשית נצטרך להוסיף בראש כל תוכנית פקודה
שתייבא את המחלקה:
;import javax.swing.JOptionPane
• כעת נוכל להשתמש בחלון הדיאלוג בתוכנית
• על מנת להציג הודעה:
JOptionPane.showMessageDialog(null,Mes
;)sage
• כאשר Messageהיא מחרוזת
3
)שימוש בחלון דיאלוג(המשך
:• לדוגמא
JOptionPane.showMessageDialog)null,”Hello world!”(;
JOptionPane.showMessageDialog
)null,”hello world”,
“my message",
JOptionPane.PLAIN_MESSAGE);
4
שימוש בחלון דיאלוג לקליטת קלט
ניתן להשתמש בחלון הקלט על מנת לקרוא משתנים מסוג מחרוזת
:• כדי לקרוא מחרוזת
:או
•
String numberOfYearsString = JOptionPane.showInputDialog( 19 "Enter
number of years as an integer, \nfor example 5:");
5
המרת מחרוזת לסוג משתנה אחר
במידה ונרצה לקרוא משתנים מסוג אחר נאלץ לקרוא קודם מחרוזת
ואז להמיר אותה לסוג הרצוי:
•
איך לקחת ממחרוזת משתנה מסוג char:
•
על מנת להמיר מחרוזת למספר מסוג :int
•
על מנת להמיר מחרוזת למשתנה מסוג :double
•
;"s = "14.1
;)double d = Double.parseDouble(s
על מנת להמיר מחרוזת למשתנה מסוג :boolean
;"s = "false
;)boolean b = Boolean.parseBoolean(s
”String s=“f
;)char c = s.charAt(0
;”String s = “10
;)int i = Integer.parseInt(s
6
1 דוגמא
import javax.swing.JOptionPane;
public class Lab3 {
public static void main(String[] args){
int number;
String temp = JOptionPane.showInputDialog("Enter a number
please");
number = Integer.parseInt(temp);
System.out.println("The number is :"+number);
temp = JOptionPane.showInputDialog("Enter character");
char ch = temp.charAt(0);
System.out.println("You entered:" + ch);
}
}
7
2 דוגמא
תוכנית שקולטת מספר ומחשבת את השורש שלו
import javax.swing.JOptionPane;
public class Lab3 {
public static void main(String[] args) {
float number;
String temp =
JOptionPane.showInputDialog(null,"Enter a number
please");
number = Float.parseFloat(temp);
temp = "sqrt of "+number + " is "+Math.sqrt(number);
JOptionPane.showMessageDialog(null, temp);
}
8
ההוראה if
• עד עכשיו כתבנו תוכניות שכל הפקודות שבהן
התבצעו לפי הסדר ,מתחילת התוכנית ועד סופה
• מה נעשה אם נרצה שפקודות שונות יתבצעו
במצבים שונים?
• ההוראה ifבג'אווה מאפשרת לנו לעשות זאת
9
תחביר: if ההוראה
: הואif • התחביר המינימאלי של פקודת
if (<condition>)
<command>;
:• דוגמא
public class IfExample1 {
public static void main(String[] args) {
int n1=1,n2=2;
if (n2>n1)
System.out.println(n2 +" is larger than ”+ n1);
}
}
10
תנאי שיקרי:תנאים
?• מה יהיה הפלט על המסך בתוכנית הבאה
public class IfExample_1b {
public static void main(String[] args) {
int n1=1,n2=2;
if (n2==n1)
System.out.println(n2 +" is larger than ”+ n1);
}
}
!לא יהיה פלט מכיוון שהתנאי לא מתקיים
11
יחסים לוגיים
• תנאי לוגי פשוט (ביטוי בולאני פשוט) מכיל אופרטור יחס.
האופרטורים של היחס הם
==
שווה
=!
לא שווה
>
גדול
<
קטן
=>
גדול או שווה
=<
קטן או שווה
*** הערה :יש להקפיד על סדר הכתיבה משמאל לימין,
ולא להוסיף רווחים בין שני סימנים
12
ביטויים בוליאניים (לוגיים)
•
•
•
•
13
תזכורת :כשלמדנו על משתנים דיברנו על משתנה
בוליאני ,שמקבל ערכי אמת או שקר ()true/false
זהו טיפוס הנתונים שמשתמשים בו בתנאי
לדוגמא ,יכולנו לכתוב
)if (true
{
do something..
}
ככלל ,כל מה שאנחנו כותבים בתנאי ה ifמתפרש לערך
בוליאני true :או falseולפי זה מחליטים מה לבצע
ביטויים בוליאניים (המשך)
• שימו לב להבדל בין "=" (אופרטור השמה) לבין "==" (אופרטור השוואה).
• מה יודפס למסך?
; boolean x = false
השמה = //
)if (x=true
{
;(”System.out.println)“first if
}
)if (x==false
אופרטור השוואה == //
{
;(”System.out.println)“second if
}
• תשובה :ה ifהראשון יודפס תמיד כי זאת פעולת השמה והיא מחזירה את
הערך שהיא שמה במשתנה .ה ifהשני לא יודפס כי כשמגיעים אליו הערך
של xהוא true
14
ביצוע מספר פקודות בבלוק של if
• עד עכשיו ביצענו פקודה אחת לאחר תנאי if
• מה אם נראה לבצע מספר פקודות?
• במקרה זה המבנה יהיה כזה:
{)>if (<condition
מספר הוראות לביצוע בתוך בלוק של קוד <command 1>; //
…
;><command N
}
• בתוך הסוגריים המסולסלים ניתן לכתוב כל פקודה ,כולל ifנוסף
• לא חייב להשתמש בסוגריים המסולסלים עבור שורה אחת
15
if-else
• לפעמים נרצה לחלק את התוכנית לשני מקרים :מה
לעשות אם התנאי כן התקיים ומה לעשות אם הוא לא
התקיים
• ניתן לבצע זאת בג'אווה ע"י שימוש בהוראות :if-else
{)>if (<condition
…
}
{ else
…
}
16
דוגמא
import java.util.Scanner;
public class IfExample3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int number; //this will hold the number the user gives
System.out.println("Please enter a positive integer");
number = input.nextInt();
}
}
if(number>0){
System.out.println(“Positive number!");
}
else{
System.out.println(number +
" is a negative number!");
}
17
( if-elseהמשך)
דרך שנייה לעשות את זה:
)if (x>5
{
…
}
)if (x<=5
{
….
}
דרך זו עלולה להיות בעייתית אם אנחנו משנים את הערך של XבIF -
הראשון כך שהוא עונה גם על התנאי הבא.
18