1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Ruby】入力の確認とエラー処理(備忘録)

Posted at

ChatGPTからRubyにおける入力の確認とエラー処理について教えてもらったので、一旦書き留めておく。
いますぐ実践するのは難しいが、早くこのレベルのコードをすらすらかけるようになりたい。

以下のコードについて解説してください。

array = []
array[0] = gets
array[1] = gets
puts array

ChatGPT

このコードは、Ruby言語を使用して標準入力からユーザーに2つの入力を求め、それを配列に格納してから、その配列を出力する簡単なプログラムです。

解説を具体的に説明します:

  1. array = []: 空の配列を作成します。これは後でユーザーの入力を格納するための容器として使用されます。

  2. array[0] = gets: gets メソッドを使用して、ユーザーに対して1つ目の入力を要求します。入力された値は、配列 array の最初の要素に代入されます(インデックス0の位置)。

  3. array[1] = gets: 同様に、gets メソッドを使用して、ユーザーに対して2つ目の入力を要求します。この入力も配列 array の2番目の要素に代入されます(インデックス1の位置)。

  4. puts array: 最後に、配列 array を出力します。これにより、ユーザーが入力した2つの値が順番に表示されます。

このプログラムは、非常に基本的であるため、エラー処理や入力の検証が不足しています。ユーザーが期待通りの形式で入力することを前提としています。より堅牢なプログラムを作成するには、入力の確認やエラー処理を追加することがお勧めです。

「入力の確認やエラー処理」とは具体的にはどのようなものですか。

ChatGPT

「入力の確認やエラー処理」は、プログラムが期待通りのデータを受け取るために、入力データに対する検証と処理を行うことを指します。これにより、不正確な入力やエラーが発生した場合に、プログラムが適切に対処できるようになります。

具体的な手法や検証の例を以下に示します:

  1. 型の検証: 期待されるデータ型と一致するかどうかを確認します。たとえば、ユーザーが数字を入力することが期待される場合、実際に数字が入力されたかどうかを確認します。

    input_1 = gets.chomp
    input_2 = gets.chomp
    
    # 数字が入力されたかを確認
    if input_1 =~ /\A\d+\z/ && input_2 =~ /\A\d+\z/
      array[0] = input_1.to_i
      array[1] = input_2.to_i
      puts array
    else
      puts "数字を入力してください。"
    end
    
  2. 範囲の検証: 入力された値が期待される範囲内にあるかどうかを確認します。

    input_1 = gets.chomp.to_i
    input_2 = gets.chomp.to_i
    
    # 範囲の検証
    if input_1.between?(1, 100) && input_2.between?(1, 100)
      array[0] = input_1
      array[1] = input_2
      puts array
    else
      puts "1から100までの範囲で入力してください。"
    end
    
  3. エラーハンドリング: 例外処理を使用して、予期せぬエラーが発生した場合に備えます。

    begin
      input_1 = Integer(gets.chomp)
      input_2 = Integer(gets.chomp)
    
      array[0] = input_1
      array[1] = input_2
      puts array
    rescue ArgumentError
      puts "整数を入力してください。"
    end
    

これらの手法を組み合わせることで、プログラムが安定して動作し、予測できない入力に対処できるようになります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?