- ベストアンサー
「検査?真の処理:偽の処理」の書き方を理解しよう
minus273の回答
例1でも大丈夫なように思います。 例3は意味が違います。たとえば偽のとき展開すると $datax[] = ($datax[] = $data1); になってしまいますよね? まさかとは思うのですが、上は $datax[] で下は $datay[] だからではないでしょうか……。
関連するQ&A
- NULLの定義について
C言語で、NULLとの比較を行う関数として、 strcmp関数を使用したいと考えています。 ある、文字列変数に、 "あいうえお"が入っている場合、 ""(何もない)の場合、 下記の例で真の処理と偽の処理、 どちらを通るのでしょうか。 当然、文字列変数が"あいうえお"の場合は、 真の処理を通ると思いますが、 ""(何もない)の場合が分かりません。 例として、 ~中略~ if( strcmp( 文字列変数, NULL ) != 0 ){ 真の処理 }else{ 偽の処理 } ~中略~ の時です。 言語によって、NULLは「0」と定義されていたような 記憶もありますが・・ したい事は、文字列変数が""の場合、 偽の処理をするようにしたいです。 プログラムの作り方を教えて下さい。
- ベストアンサー
- C・C++・C#
- 変数の内容がNullと認識して、条件分岐するには?
例えば、flagという変数があります。 この変数の内容がNull(空白)であるかどうかの区別はどうすればいいでしょうか? イミディエイトの窓で以下を実行してみたら、 ? flag Null if flag = Null then ? "真" else ? "偽" 偽 となります。flagはNullなのに、何故"偽"なんでしょう?どうすれば、真と判断してくれるのでしょうか? よろしくお願いします。
- ベストアンサー
- ホームページ作成ソフト
- 繰り返し処理で
以下のEXCELデータを【Sheet1】に取り込む 【Sheet1】 A B C 1 2008/1/1 0:00 100 100 2 2008/1/1 1:00 100 100 3 2008/1/1 2:00 100 100 この時最終行のA3の文字列を変数に入れる ↓ 【Sheet1】の全セルをクリア ↓ 【2回目のデータ】 A B C 1 2008/1/1 2:00 100 100 2 2008/1/1 3:00 100 100 3 2008/1/1 4:00 100 100 この時,1回目のデータの最終行だったA3の文字列【2008/1/1 2:00】と 2回目のデータのA1【2008/1/1 2:00】を比較して、 同じであれば、A2行目から処理を開始 ※ もし比較して一致しなければ1行目から処理 ↓ 【Sheet1】の全セルをクリア ↓ 2回目のデータの最終行だったA3の文字列【2008/1/1 4:00】と 3回目のデータのA1文字列を比較 一致したら2行目から処理 ↓ これの繰り返し処理 マクロを作ってみたのですが、何かもっとこうしたほうがいい様な書き方あれば 教えていただきたく思っているのですが・・・; あとContinueに代わる、繰り返し関数?ってありますでしょうか? ------------------------------------------------------------------------------- Gyo = 100 x = Null For h = 1 To Gyo If h = 1 Then 'nullでない場合 if x := "" then 'A1とxを比較して同じであればコンティニュー If x = Sheets(SheetName).Cells(1,1) Then continue '←Forに戻る End If End If else if h = Gyo then '最終A行のデータをx変数に格納 x = Sheets(SheetName).Range("A100").End(xlUp).Row End If Next h -------------------------------------------------------------------------------
- ベストアンサー
- オフィス系ソフト
- 多くの選択項目を処理(SELECT)するストアド
多くの選択項目を処理(SELECT)するストアド とあるデータ検索において、選択項目が10項目以上あり各項目の値をパラメータとして受取り、 該当データを返すストアドを検討しています。 項目が省略された場合は Null値がパラメータとして入ってきて、その項目は条件から除外します。 (全ての項目が省略されたら、全てのレコードが返される)下記の様な方法を考えています・・・ ----------------------------------------------------------------- if @para1 is null if @para2 is null if @para3 is null select * from TBL else select * from TBL where koumoku3 = @para3 else if @para3 is null select * from TBL where koumoku2 = @para2 else select * from TBL where koumoku2 = @para2 and koumoku3 = @para3 else if @para2 is null if @para3 is null select * from TBL where koumoku1 = @para1 else select * from TBL where koumoku1 = @para1 and koumoku3 = @para3 else if @para3 is null select * from TBL where koumoku1 = @para1 and koumoku2 = @para2 else select * from TBL where koumoku1 = @para1 and koumoku2 = @para2 and koumoku3 = @para3 ------------------------------------------------------ 三つでも面倒なのに10項目以上では考えられません。 こんな時どのように作り込めばいいのでしょうか 動的ストアドにして where文自体を編集した物を渡す事も考えましたが、 エクセル出力時のパラメーター長の制限(?)で断念しました。 省略されなかった項目だけでデータを選択したいような事は多々あると思うのですが、 そんな時のオーソドックスは方法はどんな方法なんでしょうか? よろしくお願いします。
- ベストアンサー
- SQL Server
- 多次元配列の処理について
多次元配列を扱った処理を行ないたいのですが、一部でnullを受け取ってしまい、処理を行うことができません。 引数の配列には次のようなテキストが入っています。 --配列の内容-- 0,名詞-一般,1,5, 0,名詞-数,2,6, 0,名詞-接尾-助数詞,3,7, -------------- この配列をコマンドラインに書き出すと正確に表示されます。 しかし、配列の内容を参照して処理を行なうと2列目の処理のときにnullを参照してしまいます。 プログラムは以下のとおりです。 ---プログラム--- public class Dist { public static int zairyo(String[][] date) { int a = 0; int b = 0; int c = 0; int d = 0; int e = 0; if(date != null) { int f = 0; System.out.println("//Dist//"); for(int m = 0; m < date.length; m++) { for(int n = 0; n < date[0].length; n++) { if(date[m][n] != null) { System.out.print(date[m][n] + "\t"); f++; if(f == date[0].length) { System.out.println(""); f = 0; } } } } for(int i = 0; i < date.length; i++) { if(date[i][1] != null) { if(date[i][1] == "名詞-一般") a++; if(date[i][1] == "名詞-数") b++; if(date[i][1] == "名詞-接尾-助数詞") c++; }else System.out.println("2列目null"); } int j = date.length - 1; d = Integer.parseInt(date[j][2]); e = Integer.parseInt(date[j][3]); }else System.out.println("Dist:null"); if(a > 0 && b > 0 && c > 0 && d <= 10 && e <= 15) { return 1; }else return 0; } } ------------------------ 原因は何なのでしょうか? ご教授お願いします。
- 締切済み
- Java
- LISPのブロック?処理?
LISPで (if (条件) (真の処理) (偽の処理) )のうち、 真の処理には1つの関数?しか、書けないのでしょうか? (if (条件) (setq x "○") (setq x "×") ) ======A====== 複数関数書きたい。 Aの部分は(progn ...)とするのでしょうか?
- ベストアンサー
- その他(プログラミング・開発)
- PowerShellで一部でもあるなら真としたい
特定の単語の一部でも、ある配列に存在するなら真としたいです。 例えば以下は偽となるのですが、真となるような処理はありますか? -containsが正規表現使えるのならfoodの単語を*で挟むのですが… $item = "熟したリンゴを使ったタルト" $food = @("リンゴ","ミカン","パン") $food -contains $item 出来れば短く1行で行いたいです。よろしくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- functionの中で条件分岐が効かない
JpGraphで、HTML検索フォームからPOSTされてきた変数 $numの値に応じて 縦軸の小数点以下の位数を調整したいのですがうまくいきません。 (テスト1) 下記サンプルをそのまま実行 (テスト2) num=0にする(5行目→コメントに;4行目コメント→外す) (テスト3) 4、5行目の両方をコメントにする →結果全て同じで、縦軸は少数点第3位(0.000~8.000)まで表示されます。 (テスト4) 4行目~15行目および22行目をコメントにする。 →縦軸は、少数点第1位まで表示されます(0.0~8.0)。 JpGraphに関係なく、何か基本的なことでつまづいている気がいたしますが。 <?php /*01*/ include ("./JpGraph/jpgraph.php"); /*02*/ include ("./JpGraph/jpgraph_scatter.php"); /*03*/ /*04*/ //$num = 0; /*05*/ $num = 1; /*06*/ /*07*/ function yLabelFormat($aLabel) { /*08*/ if ($num == 0){ /*09*/ return number_format($aLabel,3); /*10*/ } elseif ($num == 1){ /*11*/ return number_format($aLabel,2); /*12*/ } else { /*13*/ return number_format($aLabel,1); /*14*/ } /*15*/ } /*16*/ /*17*/ $datax = array(3.58,8.61,9.32,4.29,8.57,6.27,6.72); /*18*/ $datay = array(2.78,5.68,6.12,0.63,7.27,4.43,3.83); /*19*/ $graph = new Graph(500,500,"auto"); /*20*/ $graph->SetScale("linlin"); /*21*/ $sp1 = new ScatterPlot($datay,$datax); /*22*/ $graph->yaxis->SetLabelFormatCallback('yLabelFormat'); /*23*/ $graph->Add($sp1); /*24*/ $graph->Stroke(); ?>
- ベストアンサー
- PHP
- 【SQLServer】何も処理しない場合の記述について
【SQLServer】何も処理しない場合の記述について お世話になってます。 ご存知の方いらっしゃいましたら教えてください。 Oracleでは、IF文の中で何も処理したくない場合、明示的にNULLと書けば、コンパイルできます。 IF XXXXX THEN A = 100 ELSE -- 何もしない NULL END たとえ何も処理しない場合でも、明示的にELSE句を 書きたい場合は、 SQLServerの場合、何をかけばよいのでしょうか? 今のところ下記のように、ELSEの場合は意味の無い処理を記述しています。 IF XXX BEGIN A=100 END ELSE IF BEGIN -- 何も処理しない A = A END A=Aは意味の無い処理なのですが、削除するとコンパイルが通らなくなってしまうのでやむなく記述してます。 どなたかいいアイデアありましたらご教授くださいませ。 よろしくおねがいします。
- 締切済み
- SQL Server
お礼
minus273さん、ありがとうございました。 す、すみません、 >上は $datax[] で下は $datay[] これがビンゴでした。。。(恥)