学校で学んだ時には、”should”, “had better”, “ought to”、は「~すべきだ」「~したほうがいい」という、アドバイスをするときに使う同じような意味と習ったと思います。

ですが、実際にはアドバイスをするにもそれぞれによりニュアンスが違います。

◎should は以外と優しい
日本語で「~すべきだ!」と聞くととても強い語彙に聞こえますが、英語の場合では、それほど強い言葉ではありません。

それよりも、話し手の意見として、「~するべきだ」「~した方がいいじゃない」とアドバイスをしている時に使います。

You should attend the class.
そのクラスに出席した方がいいよ。

You should try Takoyaki while you are in Osaka.
大阪にいる間にたこ焼きを食べるべきだ!

◎had better は半分脅し!
Had better は「~した方がよい」と多くの人が習ったと思います。

日本語であれば、「~した方がよい (had better)」の方が「~すべきだ (should)」よりも柔らかい印象を受けますね。

ですが、had better は「~した方がいいよ。(そうしなかったら、よくない結果になるよ)」の半分脅しかい! とも思えるニュアンスが含まれてきます。

You had better attend the class.
(If not, you would not get the credit.)

そのクラスに出席した方がいいよ。
(もし、しなかったら、単位が取れないよ。)

You had better bring your umbrella.
(If not, you would get wet.)

傘を持って行った方がいいよ。
(そうしないと、濡れるよ。)

実際の会話では、had better を使う時 “You’d better”と短縮して発音するのが一般的です。

◎ought to は当然なアドバイス
ought to は法律、ルール、マナーなど、一般的に当たり前な事をアドバイスするときに使われます。
そのため「当然~するべきだ」の意味が含まれています。

You ought to attend the class.
(君は当然)そのクラスに出席するべきだ。

You ought to pay your rent in advance.
家賃は前払いするべきだ。

ちなみに!
Ought to の否定形は、”ought not to”
You ought not to eat something when you are in class.
授業中は食べてはいけません。

”ought to” は言葉として古い印象があり、最近では日常的に使われていないようです。
そのため、実際に使う時には、"should" を使った方が無難と言えます。


日本語に訳すると同じフレーズになるため、同じような意味で使ってしまいがちですが、
ニュアンスの違いも理解して、それぞれのシチュエーションに合った使い方をしましょう!