2013-04-06 2 views
-2

프롬프트에 대해 입력 한 값이 100,000에서 900,000 사이인지 확인해야하는데 이는 작동하지 않습니다.입력 유효성 검사 (do while 루프)

double advertCost; 
    do { 
    System.out.println("Please enter the advertising cost: "); 
    advertCost = input.nextDouble(); 

    } while (advertCost =< 100000 || advertCost => 900000); 

는 오류가 나는 수 (나는 단지 초보자 BTW 해요) : 토큰에 구문 오류가 "<",이 토큰 운영자를 삭제 || 토큰에 인수 유형 (들) 인터넷 용 부울 구문 오류를 정의되지 않는다 "=", 비교 연산자가 <=>=하지 =<=>있는이 토큰

답변

1

을 삭제합니다.

5

문제는 구문에 있습니다

자바에서
while (advertCost =< 100000 || advertCost => 900000); 

은 "보다 작거나 같음"당신이 그것을 말하는대로 운영자입니다. 보다 작거나 같음. 당신은 평등을 얻었습니다. 당신보다 더 큰 사람도 마찬가지입니다.

또한 운영자에게 잘못된 안내가 있습니다. advertCost은 100000보다 크고 900000보다 작지 만 운영자는 100,000보다 작고 9000000보다 큰 것을 원합니다. 당신의 오류에 대한 그냥 옆

종종 문제의 이러한 종류는 오류 메시지로 이해 될 수있다. 나는 그들이 어설프게 보일 수도 있지만 당신이 그것들을 해독하는 법을 배우면, 당신은 문법 오류의 측면에서 우리를 거의 필요로하지 않을 것이라고 생각합니다.

첫 번째 부분

메시지 : Syntax error on token "<", delete this token

음, JRE는 해석 단지 한 코드

Syntax error on token "<", delete this token The operator || is undefined for the argument type(s) int, boolean Syntax error on token "=", delete this token

은의 그것의 부분으로 잘라 보자 , 각각 token을 통과합니다. 도달 한 첫 번째 토큰이 유효하지 않으므로이 메시지가 생성됩니다. 그러나 이것을 삭제하면 여전히 if 문이 유효하지 않으므로 계속 읽으십시오.

두 번째 부분.

메시지 : The operator || is undefined for the argument type(s) int, boolean

음, 검출 가능한 연산자는 JRE가 생각하는, 그래서 거기에 하나가 아니라, 발견되지 않았다. 그것은 || 연산자는 두 논리 값에 작동하는지 알고있는이 시점에서

if(a number || something else). 

, 그래서 또 다른 오류가 발생합니다 : 그것은 IF 문의 일부를 구문 분석하면 그것은 찾았다. 이것은 코드가 실패한다는 것을 이미 알고 있기 때문에 수행됩니다. 다른 쪽을 확인할 필요가 없습니다.

마지막 부분

메시지 : Syntax error on token "=", delete this token

그래서 JRE가 계속되고 구문 분석, 그리고 그것은 또한 찾았다 당신 "=>". 이전과 마찬가지로 잘못된 문자가 표시되어 삭제하는 것이 좋습니다. "="를 제거하면 실제로 If 문에서이 부분에 유효한 구문을 갖게됩니다. 당신이이 유형의 오류에 직면하고

요약

다음에, 단순히 메시지를 분해하려고합니다. 어떤 문자가 잘못 되었습니까? <=을 알려줍니다. 그것은 심지어 그들에게 시도 할 것을 알려줍니다. 분명히 추측 할 수있는 것은 분명합니다. 그래서 여러분이 원하는 것을 고치고 Runtime Environment가이를 이해하도록 만드는 방법은 여러분에게 달려 있습니다!

+0

감사합니다. 나는 지금 어리 석다. – Chara

+0

오류 메시지를 이해하는 것에 대한 제 편집을 읽어보십시오. 앞으로 도움이 될 것입니다. :) 추신 : 사람들이 그것을 계속 보지 않도록 올바른 것으로 표시하십시오! :) – christopher

0
(advertCost <= 100000 || advertCost >= 900000)