تصحيح خطاء بسيط في كود بسيط
السلام عليكم و رحمة الله و بركاتة
مرحبا اخواني انا مازلت مبتداء في لغة البرمجة java و عندي مشكلة بسيطة !
في كورس الجافا الذي اقوم بدراستة طلب مننا عمل برنامج بسيط !
و هو عبار عن ماركت يحتاج عدد من الموظفين في مجالات مختلفة و برواتب و اعمار مختلفة فقمت بكتابة هذا الكود اريد رائيكم و تصحيح للخطا و ما سببة
وشكرا مقدما..
public class Market_Box {
static Scanner scan= new Scanner(System.in);
// اعداد الموظفين المطلوبين
private static byte Dev= 2;
private static byte Designer= 3;
private static byte Seller= 5;
// الاعمار المطلوبة
private static final byte age_Dev= 40;
private static final byte age_Designer= 30;
private static final byte age_Seller= 25;
// مرتبات الموظفين
private static final float us_brays_Devloper= 2600f;
private static final float us_brays_Designer= 2200f;
private static final float us_brays_Seller= 1800f;
private static byte Job_age; // متغير العمر
private static float Job_Breas; // متغير الراتب المطلوب
private static String Job_spec; // متغير الوظيفة
private static String Job_Name; // متغير الاسم
// دالة سوال المتقدم للوظيفة
public static void name(){
System.out.print("What you name ? ");
Job_Name = scan.nextLine().toUpperCase();
System.out.print("what is your specialty ? ");
Job_spec = scan.nextLine().toUpperCase();
System.out.print("What you age ? ");
Job_age = scan.nextByte();
System.out.print("What you Job Brays ? ");
Job_Breas = scan.nextFloat();
}
public static void Inter_Veiow(){
// اريد هنا اذا لم تكن وظيفتة موجودة نشكرة
// و هنا المشكلة
if(Job_spec != "DEVLOPER" || Job_spec != "DESIGNER" || Job_spec != "SELLER"){ // المشكلة انة ينفذ في اي حال من الاحوال
System.out.println("Sorry Mr "+ Job_Name +" No Jobs You !");
return;
}
if(age_Designer < Job_age || age_Dev < Job_age || age_Seller < Job_age){
System.out.println("Sorry Age old Mr "+ Job_Name );
return;
}
if(Job_spec == "DEVLOPER" && us_brays_Devloper >= Job_Breas){
if (Dev== 0)
return;
System.out.println("Hello Mr"+Job_Name+"You Devloper on Market");
Dev--;
return;
}
else if(Job_spec == "DESAIN" && us_brays_Designer >= Job_Breas){
if (Designer== 0)
return;
System.out.println("Hello Mr "+Job_Name+" You Desain on Market");
Designer--;
return;
}
else if(Job_spec == "SEAL" && us_brays_Seller >= Job_Breas){
if (Seller== 0)
return;
System.out.println("Hello Mr "+Job_Name+" You Seal on Market");
Seller--;
return;
}
else{
System.out.println("Sory Breas You Volum");
return;
}
}
public static void list(){ // طباعة عدد الوظائف المتبقية
System.out.println("######################################################");
System.out.println("Devloper Jobs : "+Dev);
System.out.println("Designer Jobs : "+Designer);
System.out.println("Seller Jobs : "+Seller);
}
}
اخي && تعني and و استخدامها هنا خطا لانة يجب ان يحتوي المتغير Job_spec علي قيمة واحدة فقط (اي الثلاث وظائف)
شكرا لمشاركتك اخي .
أنت بهذا الشرط تريد أن تتحقق من تخصص المتقدم للوظيفة ليس ضمن التخصصات المطلوبة للوظيفة
}
("if(Job_spec != "DEVLOPER" || Job_spec != "DESIGNER" || Job_spec != "SELLER
{
و شرطك هنا يقرأ إذا كان تخصص المتقدم Job_spec مختلف عن "DEVLOPER" أو مختلف عن"DESIGNER" أو مختلف عن "SELLER" فنفذ الشرط
و الأصح هو إذا كان تخصص المتقدم Job_spec مختلف عن "DEVLOPER" و مختلف عن"DESIGNER" و مختلف عن "SELLER" فنفذ الشرط
إذن عليك تغيير || ب &&
اخي ! اسمح لي ان اوضج لك عمل && و ||
علي سبيلا المثال اذا قلنا
if(2+2==5 || 2+2==7|| 2+2==4)
و ايضا هذا :
if(2+2==5 && 2+2==7 && 2+2==4)
ايهما سوف ينفذ طبعا الاول !
لان && تعني اذا كانت الثلاث شروط صحيحة بمعني اذا كان 2+2=5 و ايضا 2+2=7 و ايضا 2+2=4 طبعا اخي هذا مستحيل .
لكن || تعني (او) بمعني اذا اكنت 2+2=5 او 2+2=7 او 2+2=4
وهذا ما يجعل الشرط الاول يعمل علي عكس الثاني .
ارجو انشاء الله ان اكون قد وضحتها لك اخي
وشكرا لك ^_^
لكن شرطك سينفذ مهما كانت قيمة Job_spec
if(Job_spec != "DEVLOPER" || Job_spec != "DESIGNER" || Job_spec != "SELLER")
إعطيني على الأقل حالة واحدة لن ينفذ فيها الشرط (مستحيل ) لهذا شرطك سينفذ في كل الأحوال
التعليقات