INPUTの受けとる変数が数値しか入らない変数だからです 数値型変数に文字を入れようとして型が合わないから入れ直せとredoが出てくるんです INPUTで受けとる変数はP$として 次の行の判定もP$=="Y"としましょう P==Yでエラーは出ていませんが Yという名で中身が0の変数が自動的に作られて使われているからです このままではきちんと判断が行われません