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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

1回答

5169閲覧

jQuerで最大公約数を求めたいです

pepe7751

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2021/06/13 07:53

編集2021/06/13 08:24

前提・実現したいこと

はじめまして、プログラミングの勉強を始めたばかりの初心者です
ただいまjQuerの勉強をしています

HTMLへの追記は厳禁で、
以下の処理をイベントハンドラ内に記述する

jQuerメソッドでnum1, num2の数値を受け取る
ユークリッドの互除法の計算
jQueryのメソッドを用いて結果を<div id="box">内に表示する

この条件で最大公約数を求めたいのですが、ボタンをクリックしても計算結果が表示されません

これは計算処理が間違ってるのか、表示させるためのコードが適切ではないからでしょうか?

該当のソースコード

HTML

1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="utf-8"> 5 <title>JavaScript Test</title> 6 </head> 7 <body> 8 <div> 9 <p>割られる数:<input type="text" id="num1"></p> 10 <p>割る数:<input type="text" id="num2"></p> 11 <p><button type="button" id="button-gcd">最大公約数を計算する</button></p> 12 </div> 13 <div id="box"></div> 14 <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script> 15 <script src="main.js"></script> 16 </body> 17</html>

Javascript

1$('#button-gcd').on('click', (e) => { 2 const n1 = $('#num1').val(); 3 const n2 = $('#num2').val(); 4 if(n1 % n2 ===0){ 5 }else{ 6 while( n1 % n2 !==0){ 7 let n3= n1 % n2; 8 let n1= n2; 9 let n2= n3; 10 } 11 } 12 $('#box').val(); 13});

試したこと

ネットで調べたり、本を読んだりもしましたが解決できません

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

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

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

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

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

BeatStar

2021/06/13 08:00

「うまくいきません」ではありません。 そういうのは「主観的なもの」です。 実行結果が合わない、そもそも表示されない、急にクラッシュする、ファイルが読み込まれない、例外が飛んでくる、、、と言うふうにいろんな可能性があります。 それを単に「うまくいかない」と言われても誰も答えられません。 相手に伝わるように説明しましょう。
guest

回答1

0

.val()は入力コントロールのvalue属性の操作をする関数ですが、引数未指定だとvalue属性の値を取得し、指定されているとvalue属性の値を設定します。

$('#box').val();

参照!と書いてるだけで何にもしていません。
しかもHTMLを見る限り#boxは入力コントロールではなくdivです。

下記、letで制限された変数のスコープからして、単にwhileの中でだけ使える変数に代入していっているだけです。

js

1 while( n1 % n2 !==0){ 2 let n3= n1 % n2; 3 let n1= n2; 4 let n2= n3; 5 }

大抵のことは
言語名 キーワード(キーワード部分は1つじゃなくて良い)で調べればヒットします。
余程キーワードが大概要過ぎない、具体的なキーワードを入れる限りは。

JavaScript 最大公約数
で処理内容は結構出てきますね。

表示なら
JavaScript 値 div 設定
とかで出てきそうですよね。
jQueryの記述方法ならJavaScriptをjQueryに変えるだけ。

質問するときのヒントにもあるように調べ方のコツを知っていることも今後プログラミングをしていくうえで重用な能力の1つなのです。

「調べた」「読んだ」だけ書いたところでその人が何をどうやったのか分かりません。1つのゴールのための道は1つではないので、全ての人が同じことをするとは限りませんし書いてないことは誰にもわかりません。

「調べ方を聞く」というのもありだと思います。
「自分と他の人の調べ方の違い」を知るためにも質問本文時点で「何をどう調べたか、何を試したか」まできちんと書くようにしましょう。

読んだだけでは自分の手元のプログラムはピクリとも動きませんし、
もし確認した記事が解決につながる内容だったとしても理解できてなかったり有効活用できてなかったら何の意味もありません。

回答で得られるアドバイスも、それがある程度理解できるくらい(もしくは分からないことは自分で調べるか、突っ込んで聞くくらい)できないと何の意味もありません。

コードコピペでそのまま使ってても組めるようにはならないので、理解できてないものは理解できるまで使わないくらいの気概は持たれたほうが、プログラミングは身につくと思います。

投稿2021/06/13 08:29

編集2021/06/13 08:29
m.ts10806

総合スコア80875

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問