# FAQ・アドバイス集

## 操作・コマンド編

Emacsの画面が2画面になって見にくい
  C-x 1を押す

ファイル名を間違えてプログラムを作成した
  emacsでC-x C-wを押すとファイル名を書き換えられる

プログラムを実行する、作成するときの文字打ち
  最初の文字をある程度打ち込み、Tabキーを押す

カーソルを合わせるとき
  マウスやパッドではなく、キーボード右下の矢印キーを使う

プログラムの最初の2行目を書くのがめんどくさい
  1行目は書かなくてはならない
  2行目は書かなくて良い(勝手に打ってくれるから)

プログラムの2行目の「#-*- coding:utf-8 -*-」にemacsutf8が保存のときに打たれる
  C−x C-m f utf-8 [Enter]

プログラムが見にくい
  C-SPCで範囲指定をしてからC-iを押すと範囲内のインデント(段落)をそろえることができる無駄な空白の行を入れない

スライドにある\(円マーク)を打ちたい
  \と￥は一緒

プログラムが終わらない(∞ループになった)
  C-cを何回か押す

## 入出力処理編

文字が変数に入らない
  ダブルコーテーション(””)をつける

％が最後にでてくる
  print("～～\n")またはputs("～～")と書く

%dや%sがそのまま出てくる
  printfで出力する

プログラムに空白を出力したい、段落を付けたい
  print("\n")またはputs("")を段落を付けたい場所に書く

## 演算編

nil
  nilは値が何もないときに出てきます。配列などで指定したところに値があるかを確認しましょう

## 制御構造編

breakやredoが反応しない
  whileの中にないと反応しません
  while
  ～～
  redo
  end
  のようになっているか確認する

elseのときにしか次に進まない
  if
  ～～
  else
  ～～
  次にしたいこと
  end
  になっているかも

## 配列編

配列に値を入れたい
  <<またはpushを使う
  配列名<<値
  配列名.push(値)

配列の値を取り出したい
  shiftまたはforを使う
  先頭の値を取り出すとき
  配列名.shiftを使う
  一定数、全部取り出すとき
  for 変数 in 配列名

配列から値を取り除きたい
  配列名.dekete_at(x)(xは取り除きたい値の添字)で取り除くことができる

## メソッド定義(def)編

defの中の値をdefの外で使いたい
  基本的にdefの中と外では違う世界になっている 一応retrunする値をgetsで取得できるが無駄にプログラムを書くことになるのでお勧めはしない

どんな時に使うのか?
  くり返し使いたい時に使う

## エラーメッセージ編

error.rb:6: warning: found
  error.rbの6行目にエラーがある

`= literal' in conditional, should be ==
  if a = 0 と書いてあるが == にするべき

syntax error, unexpected end-of-input
  endが足りないか多いかのどっちか

`printf': too few arguments (ArgumentError)
  printfの中に%sや%dはあるが代入する変数がない

invalid value for Integer()
  printfの中に%dがあり、整数ではないものを出力しようとしている