2013-04-02 2 views
0

프로그램을 컴파일하려고하는데 이전에 보지 못한 몇 가지 오류가 계속 발생합니다. 내가 얻는 오류는 다음과 같습니다오류가 발생하지만 의미가 확실하지 않습니다.

import java.util.Scanner; 
import java.io.FileReader; 
import java.io.*; 

public class Project1 
{ 
    public static void main (String [] args) throws FileNotFoundException 
    { 
    Scanner inFile = new Scanner(new FileReader("artists.txt")); //read from file 
    Scanner console new Scanner(System.in); //read from user input 


int sum = 0; //sum of revenue 
String artist; //user input 
int revenue = 0; //store yearly revenue 


System.out.println("Please enter the name of a band/artist: "); 
artist = console.next(); 

String[] tokens = artist.split(" "); 

while(inFile.hasNext()) 
{ 
    if (tokens == inFile.hasNext()) 
    { 
    if (inFile.Next == (2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012)); 
    { 
     if (inFile.hasNext()) 
     { 
     revenue = inFile.nextInt(); 
     sum += revenue; 
     System.out.print("sum"); 
     } 
    } 
    } 
} 

inFile.close(); 

: 이것은 내 프로그램입니다

Error: Syntax error, insert ";" to complete LocalVariableDeclarationStatement [Line 13] 
Error: Syntax error on token "==", Name expected after this token [Line 30] 

사람이, 다른 실수를 참조를 지적 주시기 일어나는 경우

. 고맙습니다.

+0

자바를 배우는 경우 간단한 자바 예제부터 시작해야한다고 생각합니다. 귀하의 코드는 기본적인 구문 오류를 가지고 있습니다 ... –

답변

1

당신은 할당 연산자 =을 놓치고 :

Scanner console = new Scanner(System.in); 

당신이 할 수 없을 것입니다 : 내가 당신에게 같은데요

if (inFile.Next == (2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012)); 

원하는

을 :

if (revenue == 2005 || revenue == 2006 || ...)) { 
    sum += revenue; 
} 

또는 간단히

if (revenue >= 2005 && revenue <= 2012) { 
+0

감사합니다. 그건 내가하려는 일이 아니야. 나는 "artist year revenue"와 같은 형식의 파일을 가지고있다. 이것은 여러 예술가와 몇 년에 걸쳐 여러 줄에 걸쳐 반복됩니다. 일부 아티스트는 두 번 이상 나타납니다. 내 프로그램에서 아티스트가 사용자 입력을 찾은 다음 모든 다른 연도에 대한 수익을 합산하기를 원합니다. 두 번째 줄을 사용하려는 나의 시도는 내 프로그램에서 올해를 찾아 건너 뛰고 수익을 합산하는 것이 었습니다. – Hexiom

+0

@ user2236308 사용한 구문은 Java에서 지원되지 않으므로이 방법을 사용해야합니다. – Logan

+0

@Logan Dam Dully가 지적했습니다. 나는 다음 프로그램으로 넘어 가기보다는 어떻게 프로그램을 같은 줄에서 읽게 할 수 있는지 궁금하다. 나는 그렇게하도록 강요하는 조건을 만들어 내려고 노력했다. 고맙습니다. – Hexiom

4

현재 할당을 놓치고 :

Scanner console new Scanner(System.in); 

을이 :

if (inFile.Next == (2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012)); 

내가에서 인식 할 수 아무것도 아니다 (후행 세미콜론을 제쳐두고) 자바. 나는 이것을 더 작은 단위로 나누고 atime에서 하나의 작은 구성 요소를 사용하려고 노력할 것이다. 그렇지 않으면 많은 수의 컴파일러 오류와 혼동하기 쉽다.

+0

감사합니다. 괜찮 으면 두 번째 줄에 대해 또 다른 질문이 있습니다. "name year revenue"와 같은 형식의 파일이 한 줄에 모두 있습니다. 이름이 여러 번 반복됩니다. 내 프로그램이 다음 줄로가는 것보다 어떻게 만들 수 있습니까? 한 해 건너 뛰고 그 줄의 수익을 다른 줄의 수익에 더할 것입니까? – Hexiom

+0

나는 그 의견에 대해 간단히 대답 할 수 있다고 생각하지 않는다! 죄송합니다. 아마도 또 다른 질문입니다 ... –

+0

고맙습니다. – Hexiom

관련 문제