루비로 간단한 A + B 프로그램을 작성하고 싶지만 콘솔로 작업하는 방법을 모르겠습니다.
답변
당신은 말하고 gets
있습니까?
puts "Enter A"
a = gets.chomp
puts "Enter B"
b = gets.chomp
c = a.to_i + b.to_i
puts c
그런 거요?
최신 정보
Kernel.gets
에서 찾은 매개 변수를 읽으려고 시도하고 찾을 ARGV
수없는 경우에만 콘솔을 요청합니다 ARGV
. ARGV
비어 있지 않은 경우에도 콘솔에서 읽도록 강제하려면STDIN.gets
답변
명령 줄을 통해 매개 변수를 전달할 수도 있습니다. 명령 줄 인수는 ARGV 배열에 저장됩니다. 따라서 ARGV [0]은 첫 번째 숫자이고 ARGV [1]은 두 번째 숫자입니다.
#!/usr/bin/ruby
first_number = ARGV[0].to_i
second_number = ARGV[1].to_i
puts first_number + second_number
그리고 당신은 이것을 이렇게 부릅니다
% ./plus.rb 5 6
==> 11
답변
사용자로부터 입력을받는 방법에는 여러 가지가 있습니다. 나는 개인적으로 방법을 사용하는 것을 좋아합니다. gets를 사용
하면 입력 한 문자열 을 가져 오며 여기에는 입력 을 끝내기 위해 누른 ENTER 키가 포함됩니다 .
name = gets
"mukesh\n"
irb 에서 이것을 볼 수 있습니다 . 이것을 입력하면 ENTER 키가 생성하는 “개행”문자 인 \ n
name = gets
이 표시됩니다 . 입력 하면 다음과 같은 내용이 표시됩니다 . chomp 방법을 사용하여"mukesh\n"
성가신 개행 문자를 제거 할 수 있습니다 .
chomp 메서드는 문자열을 되돌려 주지만 줄 바꿈을 끝내지 않습니다. 아름다운 씹는 방법 생명 구세주.
name = gets.chomp
"mukesh"
터미널을 사용하여 입력을 읽을 수도 있습니다. ARGV 는 Object 클래스에 정의 된 상수 입니다. Array 클래스 의 인스턴스이며 모든 배열 메서드에 액세스 할 수 있습니다. 배열이기 때문에 상수 임에도 불구하고 문제없이 요소를 수정하고 지울 수 있습니다. 기본적으로 Ruby는 명령 줄 바이너리가 호출 될 때 Ruby 프로그램에 전달 된 모든 명령 줄 인수 (공백으로 분할)를 캡처하여 ARGV 배열에 문자열로 저장합니다 .
Ruby 프로그램 내에서 작성되면 ARGV 는 다음과 같은 명령 줄 명령을받습니다.
test.rb hi my name is mukesh
다음과 같은 배열을 만듭니다.
["hi", "my", "name", "is", "mukesh"]
그러나 제한된 입력을 전달하려면 다음과 같이 사용할 수 있습니다.
test.rb 12 23
프로그램에서 다음과 같은 입력을 사용하십시오.
a = ARGV[0]
b = ARGV[1]
답변
터미널의 인수를 유지하려면 다음 코드를 시도하십시오.
A = ARGV[0].to_i
B = ARGV[1].to_i
puts "#{A} + #{B} = #{A + B}"
답변
대화 형 콘솔을 만들려면 :
#!/usr/bin/env ruby
require "readline"
addends = []
while addend_string = Readline.readline("> ", true)
addends << addend_string.to_i
puts "#{addends.join(' + ')} = #{addends.sum}"
end
사용법 (위의 스 니펫을 summator
현재 디렉토리의 파일에 넣었다고 가정 ) :
chmod +x summator
./summator
> 1
1 = 1
> 2
1 + 2 = 3
Ctrl + D
종료하는 데 사용