الجمعة، 13 سبتمبر 2013

دورة تعلم الجافا من الصفر (الاساسيات حتى الاحتراف) - الجزء الثامن

نشر في :
2.11. Getting Input from Input Dialogs

جميل قوي لحد كده طيب في برنامج مساحة الدائرة كنا بندخل قيمة نصف القطر من البرنامج طيب لو حبيت اني اغير القيمة هدخل تاني للبرنامج واعدل في الكود طيب مافيه طريقة اسهل وهي اني ادخل القيمة من input dialogue وده موجود في ال JOptionPane في الميثود اللي اسمها showInputDialog .



هنكتب البرنامج عادي زي ماكتبناه قبل كده الجزء اللي هيتعدل بس هيبقي الجزء ده :



اول جملة null بتخلي الرسالة تطلع في وسط الشاشة وبعدين الجملة اللي هتخلي الuser يدخل القيمة "Enter an input" وبعد كده عنوان الdialog وبعد كده JOptionPane.QUESTION_MESSAGE علشان يعرض منظر علامة الإستفهام .




2.11.1. Converting Strings to Numbers

في برنامج زي اللي فات ده لو المفروض اني ادخل رقم هيتقري علي انه حرف مش رقم طيب الحل للمشكلة دي ايه ؟؟؟ الحل اني اخد القيمة اللي بدخلها دي واحولها لرقم يعني لو عندنا string اسمه intString وعايزة احوله لرقم int هيبقي كده :


كود PHP:
int intValue Integer.parseInt(intString);  
ولو عايز احول متغير string ولكن فيه قيمة double هيبقي كده:

كود PHP:
double doubleValue Double.parseDouble(doubleString);  



وبعد كده فيه برنامجين كـ case study كتطبيق علي كل اللي فات.






2.13. Getting Input from the Console


طيب دلوقتي احنا دخلنا قيمة بطريقة الJOptionPane ماشي بس انا لو عاوز اني ادخل القيم من ال command prompt هيبقي ازاي؟؟؟؟
في النسخة jdk 1.5 بتقدم لنا كلاس جديد اسمه Scanner بيحتوي علي موجموعة من الميثودس اللي بتمكني من اني استقبل من الuser اي نوع من المتغيرات وبيتعرف زي كده :

كود PHP:
System.out.print("Enter a double value: "); Scanner scanner = new Scanner(System.in); double d scanner.nextDouble();  
ملاحظة : ميثود print هي بالظبط زي println ولكن الفرق ان println بتطبع الجملة وتسيب بعدها سطر لكن print بتطبع كله جنب بعضه .

مثال علي الستخدام كلاس Scanner :

كود PHP:
1 import java.util.Scanner// Scanner is in java.util
 
2
 3 
public class TestScanner {
 
4   public static void main(String args[]) {
 
5     // Create a Scanner
 
6     Scanner scanner = new Scanner(System.in);
 
7
 8     
// Prompt the user to enter an integer
 
9     System.out.print("Enter an integer: "); 10     int intValue scanner.nextInt(); 11     System.out.println("You entered the integer " intValue); 12
13     
// Prompt the user to enter a double value 14     System.out.print("Enter a double value: "); 15     double doubleValue scanner.nextDouble(); 16     System.out.println("You entered the double value " 17       doubleValue); 18
19     
// Prompt the user to enter a string 20     System.out.print("Enter a string without space: "); 21     String string scanner.next(); 22     System.out.println("You entered the string " string); 23   24 }  
وشكل الخرج هيبقي كده :












2.14. Programming Style and Documentation



المفروض ان اللي بيفرق برنامج عن التاني هو الشكل يعني كله بيبرمج بس مش كله بيطلع شكل برنامجه جميل منظر الكود وهو مكتوب بنظام , حسن توزيع التعليقات كل دي حاجات بتساعد انها تخلي شكل البرنامج جميل .

وبيبدأ يقول نصايح زي مثلا توزيع التعليقات يكون بشكل انيق وبناء الكود يكون علي حسب المواصفات العالمية يعني مثلا اسماء المتغيرات تكون small ولو كلمتين تبقي اول كلمة small والتانية اول حرف فيها capital وكمان بينصحنا اننا نسيب مسافات في الأماكن المناسبة زي كده :










وكمان شكل الblocks يكون منظم ويوضح كل قوس بدايته ايه ونهايته ايه زي كده:







2.15. Programming Errors



عندنا فيه تلات انواع من الاخطاء في الكود إما syntax errors او runtime errors او logical errors

- اول نوع وهو الـ Syntax errors وده بيبقي غلط في قواعد اللغة زي كده :


كود PHP:
// ShowSyntaxErrors.java: The program contains syntax errors public class ShowSyntaxErrors {
  public static 
void main(String[] args) {
    
30;
    
System.out.println(4);
  }
}  
وده الغلط اللي فيه ان المتغير i اديتله قيمة من غير مااعرف نوعه كان المفروض الصح يكون كده :

كود PHP:
// ShowSyntaxErrors.java: The program contains syntax errors public class ShowSyntaxErrors {
  public static 
void main(String[] args) {
    
int i 30;
    
System.out.println(4);
  }
}  

- تاني نوع وهو runtime errors وده بيحصل بعد عملية الcompilation وبيكون نتيجة لأن فيه عملية من المستحيل تنفيذها زي مثلا القسمة علي صفر ليس لها معني زي كده :

كود PHP:
// ShowRuntimeErrors.java: Program contains runtime errors public class ShowRuntimeErrors {
  public static 
void main(String[] args) {
    
int i 0;
  }
}  

- تالت نوع وهو الـ logical errors وفي النوع ده بتكون القواعد سليمة والعمليات سليمة ولكن البرنامج مش بينفذ المطلوب منه والخطأ ده غالبا بيكون خطأ المبرمج نفسه زي كده ده برنامج المفروض انه بيجمع رقمين :


كود PHP:
// ShowLogicErrors.java: The program contains a logic error public class ShowLogicErrors {
  public static 
void main(String[] args) {
    
// Add number1 to number2
    
int number1 3;
    
int number2 3;
    
number2 += number1 number2;
    
System.out.println("number2 is " number2);
  }
}  

والغلط هنا انه بعد جمع الرقمين خزن الناتج في واحد منهم يعني طير قيمة المتغير number2 . 





وبكده يكون الشابتر خلص


لينكة تحميل الشابتر كاملا



يارب الكل يستفيد منه وجعله الله في ميزان حسناتنا جميع

ليست هناك تعليقات:

إرسال تعليق

جميع الحقوق محفوظة سيف شابسوغ ©2012-2013 | جميع المواد الواردة في هذا الموقع حقوقها محفوظة ، فهـرس الـموقــع | أتفاقية الأستخدام