• ベストアンサー

文字数カウント(ifで分岐)

文字数を数えて分岐させたいと思い以下のようにしました。 if ((length($NAIYOU)) < 32){ &ok; } else { &ng; } OKの場合はすんなりいきますが、NGの場合がエラー(Internal Server Error)になります。 何がダメなのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • kou2000
  • ベストアンサー率29% (14/48)
回答No.1

分岐先の&ngがちゃんと定義されていますか? もしかしたら&ngの方でエラーになっているかも。

KODAMAR
質問者

お礼

回答ありがとうございます。 ng先が間違っていました。 お騒がせしました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 条件分岐

    以下の条件分岐について教えてください。 条件:str の 文字に ”0.0”や”0000”などの入力があっ   た場合、NG_FLAGを返したいのです。 どこがいけないのか、教えてください。 int CheckData2(char *str) {  if (str[0] == '0');{   printf("%c", str[0]);   if (str[0] == '0' && str[1] == '.'){    puts("CheckData2はOK_FLAG");    return OK_FLAG;   } else if (str[0] == '0' && str[1] == '.'){    puts("CheckData2はNG_FLAG;");   return NG_FLAG; } } puts("CheckData2はOK_FLAG"); return OK_FLAG; }

  • 条件分岐が多いIF分の書き方について。

    テキスト入出力でのIF分についてご質問がございます。 例えば条件が多いときに、結果が得られない時があるのですが 書き方で何か問題があるのならご指摘ください。 下記のコードでご説明します。 //コード1の文字列が04でコード2の文字列が01の場合00001を表示 if (コード1.compareTo ("04") == 0 && コード2 .compareTo ("01") == 0 ) { out.print ("00001"); //コード1の文字列が04でコード3の文字列が2の場合00005を表示 } else if (コード1.compareTo ("04") == 0 && コード3 .compareTo ("02") == 0 ) { out.print ("00005"); //コード1の文字列が08でコード3の文字列が07の場合10000を表示 } else if (コード1.compareTo ("08") == 0 && コード3 .compareTo ("07") == 0 ) { out.print ("10000"); //コード1の文字列が10でコード5の文字列が07の場合30000を表示 } else if (コード1.compareTo ("10") == 0 && コード5 .compareTo ("07") == 0 ) { out.print ("30000"); //それ以外エラー } else { out.print("エラー");} } 値がIF分の条件とマッチしていても if (コード1.compareTo ("04") == 0 && コード2 .compareTo ("01") == 0 ) { out.print ("00001"); //コード1の文字列が04でコード3の文字列が2の場合00005を表示 } else if (コード1.compareTo ("04") == 0 && コード3 .compareTo ("02") == 0 ) { out.print ("00005"); //コード1の文字列が08でコード3の文字列が07の場合10000を表示 } else if (コード1.compareTo ("08") == 0 && コード3 .compareTo ("07") == 0 ) { out.print ("10000"); このコードまでに当てはまらない条件はすべて ("10000"); の結果になり つまりそれ以降のelse if の条件に 当てはまらなくなります。 else if をいくらでも増やして条件分岐出来ると学習して 検証しているのですが・・・ 最終的にがIF~else if ~elseで 30パターンぐらい条件分岐したいと思ってます。 初歩的なご質問で恐縮ですが アドバイス よろしくお願いします。

    • ベストアンサー
    • Java
  • 半角文字と全角文字の区別

    以下のように、Stringに文字列を読み込んで、 400文字(半角)以上の場合は、メッセージを出したいのですが、 全角でも400文字まで、NGになりません。 どうすれば、判定できるのでしょうか? 教えて下さい。 例 JTextArea txtArea = new JTextArea(); String memo = txtArea.getText(); if(memo.length()>400){ // 400文字(半角)以内にして下さい。 // NG ! }else{ // OK ! }

    • ベストアンサー
    • Java
  • 条件分岐(if)について

    条件分岐(if)についてお聞きしたことがあります。 例えば if($a == 'A' || $a == 'B'){ 処理 }else if($a == 'C' || $a == 'D' || $a == 'E'){ 処理 }............... といった条件分岐があったとて、お聞きしたいことが2点あります。 ・条件分岐この後も数十個続いたとします。その場合もelse ifで一つ一つ 条件を書かなければならないのでしょうか? ・条件式if($a == 'A' || $a == 'B'....)が長くなる場合プログラムが見にくくなるので 別途に条件式を書いておいてif文の所では($a == ◯)といったように簡潔に書くことは できないのでしょうか? 宜しくお願いします。

    • ベストアンサー
    • PHP
  • 分岐数といえば

    こんにちは。 作成したプログラムについての資料を作成しています。 ステップ数などを記述しますが、その中に「分岐数」があります。 そこで気になったのが、switch文の場合は、 一つのswitch文で1カウントアップでよいものでしょうか? それとも、case毎にカウントアップになるのでしょうか? ちなみに、if文の場合、 if~else~だったら、1カウントアップで、 if~elseif~だったら、2カウントアップするのかな、 と考えています。 一般的に、というか、皆さんでしたら、どのようにカウントしますか?? よろしくお願いします。

  • if分岐が上手くいかない。

    if分岐が上手くいかない。 お世話になっております。 基本的なif分岐だと思うのですが、 なぜ動かないのか、どうしても理解できずにいます。 目的は勤務表の作成で、 数値型で取得している外出時間(例.1時間15分⇒1.25) この分の部分を、 0分なら0,(1時間0分⇒1.0なのでそのまま)、 1分から30分までは30分扱い、(0.01⇒0.5,1.01⇒1.5) 31分から60分までは1時間扱い、(0.51⇒1.0,0.9⇒1.0) と、判断する部分を書いているのですが、 何故か分岐が上手くいきません。 下記のように、時間を一度文字列型に変換し、 小数点を条件に分割、 分割した分の部分を数値型にし、その値で比較する。 そんなソースを書いているのですが、 常に1の分岐に入ってしまうのです。 更に1.0時間など、0の分岐を追加するとエラーとなり動きません。 基本的なif分岐だとは思うのですが なぜ上手く行かないのか、 自力でどうしても解決できず相談致します。 よろしくお願いします。 temp = 1.75; alert(temp + "この数字は1時間45分数値型"); //外出時間に関しては、小数部分を0.5単位で切り上げる str = new String(temp); tempstr = str.split('.'); alert(tempstr[0] + "外出時間、HH"); hun_str = tempstr[1].substring(0,2); alert(hun_str + "外出時間、MI"); //hun_strを数値型に hun_int = hun_str - (-0); alert(hun_int + "外出時間、MI(この値で判定)"); if( 0 < hun_int <= 50 ){  //分岐1  alert("1分以上、30分以下。0.5時間とする。"); }else if( hun_int > 50){  //分岐2  alert("30分以上は1時間扱い"); }

  • ifでの条件分岐

    .net vb2005でプログラミングしています。 2つのテキストボックスがあり、その名前をtextbox1,textbox2 , 変数の代入をtx1、tx2とします。 どちらも半角数字で300までしか入力できません。 さらに、tx1に入力されるとtx2も必ず入力される必要があります。 tx1が未入力の場合はtx2も未入力である必要があります。 最初にtx1の文字数が0か確認し、入っている場合、居ない場合と ifで条件分岐させましたが うまくいきません。。 アドバイスいただきたいと思います。 Dim tx1,tex2 As Integer If Len(TextBox1.Text) = 0 Then flg = 0 ElseIf Regex.IsMatch(TextBox1.Text, "^[0-9]{1,3}$") Then tx1= Val(TextBox1.Text) tx1 = Convert.ToInt32(iptx5) '文字列をInteger型(数字型)に変換 Else MsgBox("300までの数字で入力して下さい", vbCritical, "入力エラー") TextBox1.Clear() Exit Sub End If If tx1 > 255 Then flg = 1 MsgBox(ipm_msg2, vbCritical, "入力エラー") TextBox1.Clear() End If '********************************************************************** If Len(TextBox1.Text) = 0 Then flg = 0 exit sub ElseIf Regex.IsMatch(TextBox2.Text, "^[0-9]{1,3}$") Then tx2 = Val(TextBox2.Text) tx2 = Convert.ToInt32(tex2) Else MsgBox(ipm_msg1, vbCritical, "入力エラー") TextBox2.Clear() Exit Sub End If '**255以上なら入力不可** If iptx6 > 255 Then flg = 1 MsgBox(ipm_msg2, vbCritical, "入力エラー") TextBox6.Clear() Exit Sub End If

  • 文字列の取得

    DBから読み込んだ配列となっている 文字数を取得して、ある一定の文字数と比較したいのですが、 何かいい方法はありませんか? 自分で調べた結果、valueの名前をもってきて、 lengthという命令を使えばいいのかなと考えています。 しかし、vakue句が ${Line.???} みたいになっていて、 同じ要領でやるとエラーになります。 この場合、どうしたらいいのでしょうか? ちなみに今は、こういう状態でエラーになっています。 if(${Line.???}.length > 9){   window.alert('NG'); }

  • 単語数、文字数のカウントプログラム

    以下のような単語数、文字数のカウントプログラムを作ったのですが、10行目に「フォーマットは char ですが、引数は different type です」というエラーが出てしまいます。どのように修正したらよいでしょうか?教えてください。 #include <stdio.h> int main(void){ int wordcnt = 0; int charactercnt = 0; int i; char line[100]; printf("String: "); fgets(line, sizeof(line), stdin); sscanf(line, "%s", &line); if(line[0] != ' '){ wordcnt++; } for(i = 0; line[i] != '\0'; i++){ if(line[i - 1] == ' '){ wordcnt++; } if(line[i] != '\n'){ charactercnt++; } } if(wordcnt == 1){ printf("%d word,", wordcnt); }else{ printf("%d words,", wordcnt); } if(charactercnt == 1){ printf(" %d character", charactercnt); }else{ printf(" %d characters", charactercnt); } return 0; }

  • EXCEL、文字の数をカウントしたい。

    エクセル関数を使って、文字(100文字以上)の数をカウントしたいのですが、可能でしょうか。 例えば:セルに一つずつ、ABCAAACDを入力した場合に、A=4、B=1、C=2、D=1 のように表示したいんです。 ※Aを数える場合に、IF関数を使ってAのとき1となるように IF(A1="A",1)+IF(A2="A",1)+・・・+・・・のように順次足していけば短い文字であれば可能ですが、文字数が多くなってくると、セル内に関数がはいりきらずに計算できなくなります。別の関数をつかってより簡単に計算できないでしょうか?

このQ&Aのポイント
  • インクがのらず、かすれてハガキがほぼ印刷されない問題が発生しています。質問者はA4サイズのハガキを印刷する際に起きる問題であり、インクも十分に残っています。さらに、プリンタヘッドのクリーニングも試してみましたが解決しません。この問題の原因と解決策を教えてください。
  • キヤノン製品についての質問です。A4サイズのハガキ印刷時にインクがのらず、ほぼ印刷されません。インクは問題なく残っており、プリンタヘッドのクリーニングも行いましたが改善されません。この問題の解決方法を教えてください。
  • 質問者はキヤノン製品についての問題を質問しています。A4サイズのハガキを印刷すると、インクがのらずほぼ印刷されない状態になります。インクは十分な量が残っており、プリンタヘッドのクリーニングも試しましたが問題は解決されていません。この状況を改善する方法を教えてください。
回答を見る