2013-10-10 6 views
-1

사용자가 주식 정보를 찾기 위해 날짜를 입력하는 프로그램을 작성했습니다.if 문을 수정하는 방법

프로그램에서 일련의 if 문을 사용하여 프로그램에서 원하는 정보 유형을 조회 할 수 있습니다. '열림', '높음', '낮음', '닫힘', '볼륨', '변경됨', '퍼센트 변경', '조정 완료', '거래가'등 사용자가 조회 할 수있는 10 가지 유형의 정보가 있습니다. ","거래량 ".

정보 유형에 대한 정보가 없으면 프로그램이 작동하지 않는 것이 문제입니다. 이건 내 if 문 중 하나입니다

lookup.rb:75:in `<main>': undefined method `[]' for nil:NilClass (NoMethodError) 

:

if input == "open" 
    if data[1] != nil 
    puts "The open of your stock is: " + data[1] 
    else 
    puts "Sorry, but that value wasn't recorded" 
    end 
end 

당신이 프로그램의 나머지 부분을 필요로 알려줘 여기

는 위로 오는 오류입니다. 당신이 data을 사용하고 같은

+1

'lookup.rb : 75'에서 오류가 발생하면'lookup.rb : 75'와 가능한 한 많은 주변 코드를 게시하십시오. :) –

답변

2

당신은 그것을 코드의 나머지 부분없이 data[1] 요소

+0

대단히 감사합니다. – user2759592

0

에 액세스하려고 시도하기 전에 data이 존재하는지 확인합니다

if data && data[1] != nil 

뭔가를 할 수 있습니다, 이것은 단지 보이는 언제 냐고. 이 경우, 그렇게하지 마십시오.

if input == "open" && !data.nil? 
    if data[1] != nil 
     puts "The open of your stock is: " + data[1] 
    else 
     puts "Sorry, but that value wasn't recorded" 
    end 
end 

을하지만 우리가 보는 코드가 있다면 가능성이 더 나은 솔루션이있다 :이 같은

뭔가 도움이 될 수 있습니다.

+0

'data'가 결코'false'가 될 수없는 한'nil '에 대한 테스트는 필요하지 않습니다. 그러면 if (input == "open") && data'로, 그리고 if data [1]! = nil'을'if data = [1]' –