So I have two methods:
public double calcAvg()
{
double dSum;
dSum=iTest1+iTest2+iTest3/3;
System.out.print(dSum);
return dSum;
}
public void setTestScores(int iTest1, int iTest2, int iTest3)
{
if(iTest1>0)
{
this.iTest1=iTest1;
}
if(iTest2>0)
{
this.iTest2=iTest2;
}
if(iTest3>0)
{
this.iTest3=iTest3;
}
I am trying to figure out why calcAvg()
is setting the values of iTest1, iTest2, iTest3
as 0 after inputting the variables with values like so: Methods.setTestScores(90,78,83);
EDIT Added global code
import java.util.Scanner;
import java.text.DecimalFormat;
public class Student
{ Scanner kbAlpha=new Scanner(System.in);
Scanner kbNum=new Scanner(System.in);
String strLast; //student's last name
String strFirst; //student's first name
int iTest1; //test 1
int iTest2; //test 2
int iTest3; //test 3
String strStreet; //student’s street address
String strCity; //student’s city
String strState; //student’s state
String strZip; //student’s zip
//+Student(first:String,last:String) //the only constructor
public String Student(String first , String last)
{
return first + last;
}
//+setName(first:String, last:String):void
public void setName(String strFirst,String strLast)
{
if(strFirst.equals(""))
{
}
else
{
this.strFirst=strFirst;
}
if(strLast.equals(""))
{
}
else
{
this.strLast=strLast;
}
}//end setName (String ,String)
//+setTestScores( t1:int, t2:int, t3:int):void
public void setTestScores(int iTest1, int iTest2, int iTest3)
{
if(iTest1>0)
{
this.iTest1=iTest1;
}
if(iTest2>0)
{
this.iTest2=iTest2;
}
if(iTest3>0)
{
this.iTest3=iTest3;
}
}//end setTestScores(int, int, int)
//+setTest(score:int,numTest:int):void
public void setTest(int score, int numTest)
{
if(numTest>=1 && numTest<=3)
{
switch(numTest)
{
case 1:
this.iTest1=score;
}
}
}//end setTest(int, int)
//+setStreet(street:String):void
public void setStreet(String strStreet)
{
if(strStreet.equals(""))
{
}
else
{
this.strStreet=strStreet;
}
}//end setStreet(String)
//+setCity(city:String):void
public void setCity(String strCity)
{
if(strCity.equals(""))
{
}
else
{
this.strCity=strCity;
}
}//end setCity(String)
//+setState(state:String):void
public void setState(String strState)
{
if(strState.equals(""))
{
}
else
{
this.strState=strState;
}
}//end setState(String)
//+setZip(zip:String):void
public void setZip(String strZip)
{
if(strZip.equals(""))
{
}
else
{
this.strZip=strZip;
}
}//end setZip(String)
//+setAddress(street:String,city:String,state:String,zip:String):void
public void setAddress(String strStreet,String strCity,String strState,String strZip)
{
if(strStreet.equals(""))
{
}
else
{
this.strStreet=strStreet;
}
if(strCity.equals(""))
{
}
else
{
this.strCity=strCity;
}
if(strState.equals(""))
{
}
else
{
this.strState=strState;
}
if(strZip.equals(""))
{
}
else
{
this.strZip=strZip;
}
}//end setAddress(String,String,String,String)
//+getName():String
public String getName()
{
String strName;
strName=this.strFirst + this.strLast;
return strName;
}//end getName()
//+getTest(numTest:int):int
public int getTest(int numTest)
{
return numTest;
}//end getTest(int)
//+getAddress():String
public String getAddress()
{
String strAddress;
strAddress=(this.strStreet + this.strCity + this.strState + this.strZip);
return strAddress;
}//end getAddress()
//+getStreet():String
public String getStreet()
{
String strStreet;
strStreet=this.strStreet;
return this.strStreet;
}//end getStreet()
//+getCity():String
public String getCity()
{
String strCity;
strCity=this.strCity;
return this.strCity;
}//end getCity()
//+getState():String
public String getState()
{
String strState;
strStreet=this.strState;
return this.strState;
}//end getState()
//+getZip():String
public String getZip()
{
String strZip;
strZip=this.strZip;
return this.strZip;
}//end getZip()
//+findMax():int
//+findMin():int
//+calcAvg():double
public double calcAvg()
{
//double dAvg;
double dSum;
dSum=(iTest1+iTest2+iTest3)/3;
System.out.print(dSum);
return dSum;
}
//+studentRecord():String
//public String studentRecord()
}
//+letterGrade():char
//+equals(s:Student):Boolean
import java.util.Scanner;
import java.text.DecimalFormat;
public class Proj3
{
public static void main(String[] args)
{
Methods.setTestScores(90,78,83);
Student MethodAvg = new Student();
MethodAvg.calcAvg();
}
}
You didn't post what Methods
is, but I'm assuming it's an instance of Student
. The reason why iTest1, iTest2, iTest3
are 0 is that you are setting the values in the first Student
, but calling calcAvg()
on the second one, where the variables have default 0 value. Try
public static void main(String[] args)
{
Student student = new Student();
student.setTestScores(90, 78, 83);
student.calcAvg();
}
The problem is in the main method, you are setting the variables in instance and calculating the average on a separate instance, try the below code it will work:
public static void main(String[] args)
{
Student std = new Student();
std.setTestScores(90,78,83);
std.calcAvg();
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.