![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
プログラム初心者です.
現在,プログラムの書き換えを行っているところです. (言語はperlです
以下のプログラムのnextの前に,
「$bbをカウントし, $bbが2回出てきたらlast」 というプログラムを書きたいと思っています.
------------------------
if($honbun =~ /$boundary/)
{
$bb++;
if($bb >=2)
{
last;
}
next;
}
----------------
カウントする変数を使うべきだと思うのですが,どのようにすればいいでしょうか;
初心者質問で申し訳ないです.
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
ああそうだ, 「疑問点を整理する」のはいいんだけど, たぶん
あなたの本当の目的はなんなのか
を明らかにした方がいいと思う. 「全体の中でここがどのような位置づけにあるのか」がわかると読みやすいし, ひょっとすると「この部分はそもそも不要」ってことになるかもしれない. 逆に言うと, 「全体の中の位置づけ」が分からないと小手先の修正だけになるおそれもあります.
あと #2 にも書いたんだけど, 「文章とプログラムの整合性」はきちんととってください. 今の場合だと「$bb をカウントし」って書いてあるから「$bb の出現回数をカウントする」というに読める (#1 の補足の「$bbに関しては全て拾ってくる」も同様) んだけど, プログラムは「$boundary を探す」という動作になってる. つまり文章とプログラムがかみ合っていないので, 「書き換える」より前に「あなたが何を意図しているのか」を探らなきゃならなくなっちゃってます.
ということも含めて「何を目的としてどのように書いていて, どこでどのように困っているのか」を明確にした方がよいと思いますよ.
No.2
- 回答日時:
うん, 何を聞きたいのかさっぱりわからん.
質問文には「$bb をカウント」とあるのにプログラムでは $boundary を調べてるし, そうかと思うと #1 への補足では「$bbに関しては全て拾ってくる」とあってやっぱり $bb を探すように読める.
多分, 疑問点を整理して質問し直した方がいいと思う. このままだと「労多くして功少なし」じゃないかな.
あと, 「初心者」っていちいち書かれるのは目障り. そんなこと書いても問題の解決には何ら意味を持たないよ.
指摘ありがとうございます.
疑問点を整理したほうがいいですね...
どうしたら伝わるのか,同系統の質問をされてる方の質問を見て出直します.
No.1
- 回答日時:
> 「$bbをカウントし, $bbが2回出てきたらlast」
検索しているのは「$boundary」ですよね?
これは$honbun中に2回以上出てくるものなのでしょうか?
・この部分がループの中の一部
・$honbun中に$boundaryは存在してたとしても1回だけ
だとすると、$bbの初期化が間違った位置でなければ、期待したものになっていると思いますが。
「カウントする変数」とはなにを意図してますか?
この回答への補足
> 検索しているのは「$boundary」ですよね?
> これは$honbun中に2回以上出てくるものなのでしょうか?
はい,稀に2回以上出てくるデータもあるので,対策用に書き換えるところです.
> ・この部分がループの中の一部
if の中に if が入っている状態です.
> ・$honbun中に$boundaryは存在してたとしても1回だけ
だとすると、$bbの初期化が間違った位置でなければ、期待したものになっていると思いますが。
現状では $bbに関しては全て拾ってくるようなプログラムになっています.
複数の処理はできないので, $bbは2カウントまでにしようと決めました.そのために追加した部分が以下の部分です.
if($bb >=2)
{
last;
}
よろしくお願いします><
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) vba GetAsyncKeyState関数について 1 2023/08/24 12:08
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Perl Windows10においての『Perl』のプログラムについて 1 2022/05/09 16:04
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- PHP 掲示板を資料を参考にして開発中ですが、画像がアップされません? 1 2022/11/21 06:44
- Perl perlについての質問 1 2022/10/01 15:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プロトタイプ宣言のワーニング...
-
CGIから複数の別プログラムを同...
-
Pythonのマルチプロセスでの並...
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
メモリをアドレスを直接指定し...
-
SELECT OPTIONの中身をコピペ...
-
FindFirst を複数条件で検索
-
【至急!!!】python言語で本を見...
-
構造体の各データの表示につい...
-
文字の横にプルダウンを表示さ...
-
ACCESS テキストボックスを隙...
-
セレクトメニューで2つの項目...
-
UWSCのSELECT文の記述方法
-
16進の10進変換について
-
formで特定のinputを送信しない...
-
テーブル内でドロップダウンメ...
-
「*:*」って何を意味するのでし...
-
C言語のflagの使い方が分かりま...
-
c言語 16進数の2進数への変換
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CLispのloop内の挙動について
-
Perlで自分自身の関数名を知る...
-
Net::Telnetでタイムアウト時間...
-
print <<"_HTML_"の中でサブル...
-
10進数→2進数
-
Rubyのgets関数について
-
作業域が消える(ように見える)
-
CGI初心者です
-
Perlで複数の値を返す良い方法...
-
検索機能の作成で困っています
-
ハノイの塔の問題で困っており...
-
foreach 回数制限
-
Pythonのマルチプロセスでの並...
-
LISPで連想配列の操作?
-
PERLの「!=」と「=~」 or...
-
Wコロン
-
PerlでCabochaを呼び出すには(...
-
シェルでawkを使い行数を取り出...
-
Perlですが、redoの処理がいま...
-
icmp socket error
おすすめ情報