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

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

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

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

2回答

335閲覧

for loopが実行されない

yoichiyy

総合スコア55

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2020/10/09 09:18

C行には5列まで記載されており、
CZ行には3列まで記載されている場合、
5-3=2行 ・・・ に対して 処理を実行するコードを書きました。

デクリメントで、for loopのスクリプトを書きましたが、
if文の条件はクリアしたことが(ログから)わかるのですg,
for loopの条件式が?間違えているらしく、for loop内の処理が実行されません。

if(mishori_count >0){ Logger.log("if文以下実行") for(var i = mishori_count; i = 0; i--){ Logger.log("forloop内実行");//この時点で実行されていない(ログなし)・・・★ //mishori_count は2.0という数値を問題なく取得できています。

デクリメントのなにかの書き方が間違えているのかと疑い、

for(var i = mishori_count ; i <= 5; i++){

…としたところ、問題なく実行されました。

私のコードのどこが間違えているのか、お教えいただけますと助かります。

どうぞよろしくお願い致します。

・・・

〈周辺部分も、記載します〉

function tillDraft(){ //基本情報をゲットする部分は省略 var DataSheet = ss.getSheetByName("data"); const CValues = DataSheet.getRange('C:C').getValues();  var LastRow_Answered = CValues.filter(String).length;  //返信済み打刻されている最終行。CValues(返信まち最終行)よりも、短い。 const CZValues = DataSheet.getRange('CZ:CZ').getValues();  var LastRow = CZValues.filter(String).length;   //未処理の回答数をカウント var mishori_count = LastRow_Answered - LastRow; Logger.log(mishori_count) //問題なく"2.0"という値を取得・・・★  //未処理カウントが1以上の場合、これが0になるまで(1になるまで?)繰り返し処理 if(mishori_count >0){ for(var i = mishori_count; i = 0; i--){ Logger.log(i);//すでにこの時点で実行されていない(ログなし)・・・★  〈・・・途中略〉 LastRow += 1 LastRow_Answered += 1 } } }

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

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

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

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

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

guest

回答2

0

forの条件文が代入になってしまっています

投稿2020/10/09 16:10

y_waiwai

総合スコア88042

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

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

yoichiyy

2020/10/09 21:17

もう一度forloopについて調べると、 「条件を満たすまで実行する」のではなく、 「条件を満たしている間は実行する」なのだったという、勘違いに気づきました。 早速ご指摘くださり、どうもありがとうございました!
guest

0

ベストアンサー

私のコードのどこが間違えているのか、お教えいただけますと助かります。

i = 0代入ですので、条件を判定しようとした瞬間にiに0が代入され、そのままループが終わります。

投稿2020/10/09 09:47

maisumakun

総合スコア146018

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

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

yoichiyy

2020/10/09 21:17

もう一度forloopについて調べると、 「条件を満たすまで実行する」のではなく、 「条件を満たしている間は実行する」なのだったという、勘違いに気づきました。 早速ご指摘くださり、どうもありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問