의 논리적 버그를 알아야합니다.어떤 이유로 변수의 값을 검색하기 위해 메소드의 'if'문이 실행되지 않은 경우 어떤 이유로 'getUnknownsAccel'메서드를 호출 할 때 내 코드
루프를 알 수있는 다른 변수의 이름을 검색하는 데 사용하는 동안PhysicsProblem problem1 = new PhysicsProblem(accel, vI, vF, t, deltaX);
System.out.println("Which variable are you solving for? ");
String solveFor = scan.next();
// after receiving solveFor input, assesses data accordingly
if (solveFor.equalsIgnoreCase("acceleration"))
{
System.out.println("Solving for Acceleration!");
System.out.println("Are there any other unknowns? (enter 'none' or the name " +
"of the variable)");
missingVar = scan.next();
problem1.setMissingVar(missingVar);
do
{
problem1.getUnknownsAccel();
System.out.println("Are there any other unknowns? (enter 'none' or the name " +
"of the variable)");
missingVar = scan.next(); //// change all these in the program to scan.next, not scan.nextLine
}
while (!missingVar.equalsIgnoreCase("none") || !missingVar.equalsIgnoreCase("acceleration"));
if (missingVar.equals("none"))
{
// Write code for finding solutions
System.out.println("Assuming you have given correct values, the solution is: ");
}
}
가 할 일 후/I이 클래스 파일에서 getUnknownsAccel의 메소드를 호출
public void getUnknownsAccel()
{
//-----------
// checks for another unknown value that is not accel
//-----------
if (missingVar.equalsIgnoreCase("time"))
{
System.out.println("Please enter the value for time: ");
t = scan.nextDouble();
while (t <= 0 || !scan.hasNextDouble())
{
System.out.println("That is not an acceptable value!");
t = scan.nextDouble();
}
}
}
은의이 문제를 위해 가정 해 봅시다 , 사용자는 프롬프트 될 때 알려지지 않은 "시간"을 입력하게됩니다. 내 코드가 시간 변수 값을 검색하기 위해 스캔 기능을 실행하지 않는 이유는 무엇입니까? 대신 프로그램은 system.out 함수를 반복합니다. "다른 알 수없는 항목이 있습니까?"
getUnknownsAccel()을 입력하면'missingVar'의 정확한 값은 무엇입니까? 디버거를 편리하게 사용하지 못한다면 문제를 해결해야하지만, 그 동안에는'if()'전에 다시 출력하십시오. –
메시지가 나타나면 사람이 "시간"을 입력한다고 가정합니다. 나는 getUnknownsAccel()을 호출 할 때 missingVar가 "time"과 같을 것이라고 가정합니다. 내가 잘못? – TommyD
안녕하세요. 코드에서 오류를 발견하도록 사람들에게 요청하는 것은 특히 생산적이지 않습니다. 디버거를 사용하거나 인쇄 문을 추가하여 프로그램의 진행 상황을 추적하고 발생할 것으로 예상되는 것과 비교하여 문제를 격리해야합니다. 이 둘이 갈라지면 문제를 발견했습니다. (그리고 필요하다면 [최소 테스트 케이스] (http://sscce.org)를 구성해야합니다.) –