الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في الدالة()printf

بدأه ηaseemЈava في 12 أكتوبر 2013 · 1 رد · 401 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

 

يوجد خطأ في الكود في دالة ()printf

ارجو المساعدة في التصحيح

public class Employee {
	
	private String fName;
	private String lName;
	private int id;
	private double salary;
	
	public Employee(){
		fName = "Unknown";
		lName = "UnKnown";
		id = 0;
		salary = 0.00;
	}
		
	
	public String getFname(){
		return fName;
	}

	public void setFname(String fName){
		this.fName = fName;
	}
	
	public String getLname(){
		return lName;
	}

	public void setLname(String lName){
		this.lName = lName;
	}
	
	public int getID(){
		return id;
	}

	public void setID(int id){
		this.id = id;
	}
	
	public double getSalary()
	{
		return salary;
	}
	public void setSalary(double salary){
		this.salary = salary;
	}
	
	
	
	
	public static void main(String[] args){	
		Employee  emp1 = new Employee();
		emp1.setFname("Kim");
		emp1.setLname("Yee");
		emp1.setID(101);
		emp1.setSalary(40000);
		
		Employee  emp2 = new Employee();
		emp2.setFname("Lana");
		emp2.setLname("Yum");
		emp2.setID(102);
		emp2.setSalary(55.000);
		
		Employee  emp3 = new Employee();
		emp3.setFname("Alex");
		emp3.setLname("Jhone");
		emp3.setID(103);
		emp3.setSalary(55.500);
		
		Employee  emp4 = new Employee();
		emp4.setFname("joe");
		emp4.setLname("mac");
		emp4.setID(104);
		emp4.setSalary(74.000);
	
		System.out.println("Employee Name \t Employee ID \t Employee salary");	
	   
	    System.out.printf("%s %s\t%d\t$%f\n", emp1.getFname()+""+emp1.getLname(), emp1.getID(),emp1.getSalary());
	    System.out.printf("%s %s\t%d\t$%f\n", emp2.getFname()+""+emp2.getLname(), emp2.getID(),emp2.getSalary());
	    System.out.printf("%s %s\t%d\t$%f\n", emp3.getFname()+""+emp3.getLname(), emp3.getID(),emp3.getSalary());
	    System.out.printf("%s %s\t%d\t$%f\n", emp4.getFname()+""+emp4.getLname(), emp4.getID(),emp4.getSalary());
	    
	    
		
	}
}
#2

انظر لهذا السطر:

System.out.printf("%s %s\t%d\t$%f\n", emp1.getFname()+""+emp1.getLname(), emp1.getID(),emp1.getSalary());

الدالة printf تأخذ أربع قيم أنت تمرر لها ثلاث قيم، هذا الجزء:

emp1.getFname()+""+emp1.getLname()

سيضم النصين ويعيد نصّ واحد، بينما يقابله علامتي s.

 

عدّله إلى (بإزالة الـs الثانية واضافة مسافة " " بدل ""):

System.out.printf("%s\t%d\t$%f\n", emp1.getFname()+" "+emp1.getLname(), emp1.getID(),emp1.getSalary());

أو:تمرير المتغيرين دون ضمّ (أفضل):

System.out.printf("%s %s\t%d\t$%f\n", emp1.getFname(), emp1.getLname(), emp1.getID(),emp1.getSalary());

الكلام ينطبق على الأستطر التالية.

مواضيع مشابهة