質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

2回答

5677閲覧

エラーが指し示している箇所の何が間違っているかを知りたいです。

uochan8

総合スコア7

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2016/11/04 06:49

###前提・実現したいこと

codeevalにてこの課題に挑戦しています。
https://www.codeeval.com/open_challenges/167/submit/
コードのエラーが表示されるのですが、具体的な修正方法がどうしても発見できません。
プログラミング初心者です。質問内容が初歩的で、言葉遣いも足りない点があると思いますがよろしくお願いします。
###発生している問題・エラーメッセージ

エラーメッセージ

/tmp/tmp_Un8zR/source.rb:17: syntax error, unexpected '<' if data[i].length =< 55 then ^ /tmp/tmp_Un8zR/source.rb:19: syntax error, unexpected keyword_else, expecting keyword_end else ^ /tmp/tmp_Un8zR/source.rb:21: syntax error, unexpected '=', expecting keyword_then or ';' or '\n' if data[i].slice(39,1) = " " then ^ /tmp/tmp_Un8zR/source.rb:21: syntax error, unexpected keyword_then, expecting keyword_end if data[i].slice(39,1) = " " then ^ /tmp/tmp_Un8zR/source.rb:26: syntax error, unexpected keyword_end, expecting end-of-input end ^ ###該当のソースコード =begin Sample code to read in test cases: File.open(ARGV[0]).each_line do |line| # Do something with line, ignore empty lines #... end =end data = Array.new File.open(ARGV[0]).each_line { |line|data.push(line) } i=0 while i<data.length do if data[i].length =< 55 then puts data[i] else data[i].slice!(40,data[i].length - 1) if data[i].slice(39,1) = " " then data[i].slice!(39) end data[i].concat("... <Read More>") puts data[i] end i+=1 end

###試したこと
課題に対してアプローチしたことを記載してください
構文の確認をしましたが、どうしても間違いが見つかりませんでした。

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

syntax error, unexpected
は直訳で構文エラー、予期しない、とか思いも寄らない●●

と言われています。

たとえばif文の比較は'=< 'であってますか?
等しいかどうかの比較は'='だけでよかったですか?

エラーがでている行を全てrubyの入門書やリファレンスのif文の比較とかifとendの組み合わせがあっているか等見ていきましょう

↑失礼しました、ifendの組み合わせは問題ないですね。。。

投稿2016/11/04 06:58

編集2016/11/04 07:07
hiim

総合スコア1689

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

uochan8

2016/11/04 07:20

解決しました。 不等号のことに注意を払えていませんでした。 ありがとうございました。
guest

0

=< ではなく <= ではないでしょうか?

投稿2016/11/04 06:54

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

uochan8

2016/11/04 06:59

回答ありがとうございます。引き続き以下のエラーが返ってきます。 /tmp/tmpwnKdIl/source.rb:20: syntax error, unexpected '=', expecting keyword_then or ';' or '\n' if data[i].slice(39,1) = " " ^ /tmp/tmpwnKdIl/source.rb:26: syntax error, unexpected keyword_end, expecting end-of-input end ^
退会済みユーザー

退会済みユーザー

2016/11/04 07:08 編集

= じゃなくて == ではないでしょうか? なお、何にチャレンジされているのか分からないのですが、いきなりこういう問題をやるのではなく、ruby 言語の入門書などを一通りやってからの方が楽しめると思いますよ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問