일부 Ruby를 연습하기 위해 콘솔 기반 계산기를 만들려고합니다. 'case'문을 사용하여 콘솔 인수를 확인한 다음 Ruby 산술을 사용하여 결과를 해석하고 반환합니다.문자열이 '*'와 같은지 검사하십시오.
내가 가진 문제는 루비가 곱셈과 관련된 줄을 실행할 수 없다는 것입니다. 단순히 'else'블록으로 가서 내 도움 방법을 실행합니다. 나는 (나는 확실하지 않다 어떻게 그 단어) 나는 루비는 '모든'과 STAR 문자를 취급하고 가정 내가 수정 계획 내가 마음에, 사기 베어 보이는 알고
case @args[1]
when '+'
puts "#{@args[0].to_i + @args[2].to_i}"
when '-'
puts "#{@args[0].to_i - @args[2].to_i}"
when '*'
puts "#{@args[0].to_i * @args[2].to_i}"
when '/'
puts "#{@args[0].to_i/@args[2].to_i}"
when '%'
puts "#{@args[0].to_i % @args[2].to_i}"
when '**'
puts "#{@args[0].to_i**@args[2].to_i}"
else
help
end
을 지수를 제외한 모든 다른 방법이 일단 모든 일을하면됩니다.
나는, 나는 당신이 확신
... 숙제 그래서 내가 루비이 간단 별과하지 정규 표현식을 처리하도록해야 할 일을 100 % 확실하지 않다 루비에 상당히 새로운되지 오전 나는 최근에 레일스를 배우기 시작하면서 루비를 배우려고 노력하고 있습니다.
추측 해 보자 : 당신은'ruby yourscript.rb 2 * 2'와 같은 쉘에서 이것을 실행하고 있는가? 그런 다음 쉘은 '*'을 [glob] (http://en.wikipedia.org/wiki/Glob_ (프로그래밍))으로 처리하고 스크립트에 도달하기 전에 확장합니다. – hammar
아, 네가 정확히 네가 말하는 것을 본다. "./clk 5 * 8"나는 zsh에서 그걸 피하는 방법에 대한 연구를 할 것입니다. 고마워. 편집 : 쉘에서 \ *를 사용하여 이스케이프 처리했습니다. 이 질문을 고려하십시오. 해결 된 –