0
我在验证数据领域需要帮助。出于某种原因,我不断收到一个不兼容的错误。我现在检查了几次,我有正确的类型。有什么不对,2班。错误是int驱动程序类继续在“name = student.setName(input);”中引入不兼容的类型。请解释为什么? 更新验证测试分数
import java.util.Scanner;
public class P5A
{
public static void main (String args[])
{
System.out.println("Always Show");
Scanner reader = new Scanner(System.in);
student student = new student();
String name, validate, valtests;
int tests, score;
System.out.print("Please enter the students Name: ");
String input = reader.nextLine();
student.getName(input);
student.validateData();
System.out.print("Please enter Test (As number 1-3 for test number, then test score): ");
tests = student.getScore(reader.nextInt(), reader.nextInt());
student.setTests(tests);
System.out.print("Please enter Test (As number 1-3 for test number, then test score): ");
tests = student.getScore(reader.nextInt(), reader.nextInt());
student.setTests(tests);
System.out.print("Please enter Test (As number 1-3 for test number, then test score): ");
tests = student.getScore(reader.nextInt(), reader.nextInt());
student.setTests(tests);
System.out.println(student.toString());
}//end of main mthod
}//end of main class/Driver
这里是它已经被编辑因为这个问题被张贴第二类,。
import java.util.*;
import java.lang.*;
public class student
{
private String name, result, testchange;
private int test1, test2, test3;
public student()
{
name = "";
test1 = 0;
test2 = 0;
test3 = 0;
result = "";
}//constructor
public String getName (String name)
{
return name;
}//getting the name
public String validateData()
{
if (name == null)name = "Error! Must enter at least one character";
return name;
}//end validation method
public int getScore (int i, int score)
{
if (i == 1) test1 = score;
else if(i == 2)test2 = score;
else test3 = score;
if (i == 1)return test1;
else if (i == 2) return test2;
else return test3;
}//getting score of tests
public String validateTests()
{
String testschange;
if (test1 < 0 || test1 > 100) {
testschange = " You have entered an invalid number, between 1-100. \nPlease restart!";
testschange = Integer.toString(test1) ;
}
else if (test2 < 0 || test2 > 100) {
testschange = " You have entered an invalid number, between 1-100. " +
"\nPlease restart!";
testschange = Integer.toString(test2);
}
else if (test3 < 0 || test3 > 100) {
testschange = " You have entered an invalid number, between 1-100. " +
"\nPlease restart!";
testschange = Integer.toString(test3);
}
else String.toInteger(testchange) = test1 || test2 || test3;
return testchange;
}//validating the test scores and tesing each one against method
public int getAverage()
{
int average;
average = (int) Math.round((test1 + test2 + test3)/ 3.0);
return average;
}//getting a average of all the scores
public int getHighScore()
{
int highscore;
highscore = test1;
if (test2 > highscore) highscore = test2;
if (test3 > highscore)highscore = test3;
return highscore;
}//getting the highscores of all three
public String toString()
{
String str;
str = "Name: " + name +
"\nTest1: " + test1 +
"\nTest2: " + test2 +
"\nTest3: " + test3 +
"\nAverage: " + getAverage() +
"\nHighscore: " + getHighScore();
return str;
}//putting all the tests together to view in termainal
}
字符串相等的第一条规则:你不要用'=='比较字符串。其次,你的问题陈述非常广泛。通过缩小具体出错地点和地点,可以为您提供最好的服务。 – Makoto 2014-10-11 23:04:43
我会加入Makoto评论,你必须再次研究如何正确编程。仔细检查你的代码,并尝试认为如果逻辑正确。例如:public String getName(String nm),是错误的getName只应该返回“name”,而不是将其设置为nm。使用void setter函数来解决这个问题。 – 2014-10-11 23:11:13
请向我解释为什么你需要有2种方法从驱动程序获取某些东西并将变量设置为某种东西? – jdog1218 2014-10-12 23:13:39