
While文のループのなかにfor文でループをまわしているスクリプトなのですが、
forの中でカウンタ変数をつくり、ループ回数を計測しております。
またforの中である条件を満たした際に、lastでforを抜け、引き続きWhileのループを継続するという処理をしております。
$i=0;
While(○○){
処理1
for(××){
処理2
$i++;
if($i >=100){
処理3
last;
}
}
}
ここで、一度for文のif文で一度forループを抜け、Whileでループをし、またforループに突入した際に、前回forループでカウントした$iの値を保持したまま、そのつづきから$iのカウンタを動作させたいのですが、$iの値はforループを抜けるとリセットしてしまいます。
このような場合、どうすれば$iの値を保持できますでしょうか。
お詳しい方、宜しくお願い致します。
※ネストがうまく表現できず、みずらくてスミマセン。
No.1ベストアンサー
- 回答日時:
Perlのfor(式1 ; 式2; 式3 ) の 式1 ; 式2; 式3 いずれかを省略することができます。
また、
for(式1 ; 式2; 式3 ) { 処理 }
は
式1;
while(式2) {
処理
式3
}
と(ほぼ)同じです。
これらを考えて、変数が初期化されないようにすればいいのではないでしょうか。
> $iの値はforループを抜けるとリセットしてしまいます。
for文を抜けても、変数の値は保持されます。
リセットされるのは、リセットするようにプログラムに書いてあるからです。
for(××){
って省略してありますけど、ここで for($i=0;〜) ってやってませんか?
No.2
- 回答日時:
追記です。
forループは途中で抜けないとダメなんですか?
$i=0;
my $firstTime=1;
While(○○){
for(××){
if( $firstTime ) {
処理1 ;
$firstTime=0 ;
}
処理2
$i++;
if(条件を満す) {
処理3
$firstTime=0 ;
}
}
}
とか
$i=0;
While(○○){
処理1 ;
for(××){
処理2
$i++;
if(条件を満す) {
処理3
処理1 ;
}
}
}
とか、last を使わない方法があるのでは?
処理の内容次第では、もっとシンプルに書けるかもしれません。
ログの表示で、例えばログファイルのログを1000行読み込む毎に表示、最終的に1万行読み込む、といった処理をするためlastを使っています。
他の記述ができないか、考えてみます。
ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- Java Java 南京錠 2 2023/02/04 11:46
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- その他(プログラミング・Web制作) uwscとWinShotを使いスクリーンショットを撮る 1 2022/06/30 21:15
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- Visual Basic(VBA) VBA横データを縦にしたいです 2 2023/08/08 19:38
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) For~Nextステートメントの終了条件について 1 2023/01/08 18:36
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SetDlgItemInt( ) c++
-
{ ; }とは、どういう意味?
-
初回起動のみ判別したい
-
問題作成のWebアプリの作り方を...
-
C言語のflagの使い方が分かりま...
-
JSONで文字列が長い時
-
複数列を持ったリストボックス...
-
[python] 文字列を変数名として...
-
メモリをアドレスを直接指定し...
-
Application.ScreenUpdating = ...
-
Perlで複数の値を返す良い方法...
-
変数の中の数値を年月日付きに...
-
子windowsからsubmit()後にclos...
-
エクセルVBA シート名の部分一...
-
シェルスクリプト+perl
-
プルダウンメニューのターゲッ...
-
formのvalueについて
-
実行時エラー 3020の対策
-
Python - Excel で Webからデー...
-
VB6のLSETをVB2005で実現するに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6で、長い時間かかる処理...
-
実行中の変数の中身をイミディ...
-
初回起動のみ判別したい
-
C言語のflagの使い方が分かりま...
-
処理終了後、他のページへジャ...
-
C#でDataFridViewの行をすべて...
-
回数を指定しないで空白行まで...
-
SetDlgItemInt( ) c++
-
perl:ループのカウンタ変数の値...
-
問題作成のWebアプリの作り方を...
-
UWSC SLCTBOXもしくはSELECTに...
-
STDINによるキーボードからの入...
-
Pythonでこのプログラミングを...
-
VBAのCallステートメントについて
-
Valueの値によってActionの送信...
-
フラグをたてる、、の意味を教...
-
C言語のプログラミング
-
arduino の割り込み処理について
-
教えてください。 画像処理のプ...
-
スカラー変数に処理を入れる
おすすめ情報
失礼いたしました。
if文の条件式の”$i >=100”は無視して、”ある条件を満たしたとき”に置き換えていただけますでしょうか。
whileループ→forループ→if文→whileループ→forループ→if文→・・・
を繰り返す処理になります。
その度に、$iの値を保持し、次回はその値の続きからカウントしたいです。