- ベストアンサー
=と==の違いを教えてください。
os6v100iの回答
質問者様が補足された内容によると while(a%2==1) を while(a%2=1) にするとエラーになるとのことですが 当たり前です。 この場合、左辺がa%2という式なので=で値を代入することができません。 つまり、この場合は==を=にしてしまうと式として成り立たなくなるのです。 というか、コンパイラもその旨、エラーメッセージに出てますよ?
関連するQ&A
- Do whileとFor文の脱出処理について
はじめまして。 VBについて素朴な質問なのですが For…Nextから抜けるにはExit for を使いDo…Loopから抜けるにはExit Doを使用しますが以下の場合はFor文の中でExit doを使用するのは可能なのでしょうか? Do while(条件) for i=1 to 12 if 条件 then exit do end if 処理1 next i 処理2 loop 本来ならfor文の中ではExit forを使用しますがfor文はDo while文 の中に含まれていますのでExit doでも出れると思ったのですがそうではないのでしょうか?ご回答よろしくお願いします。
- 締切済み
- Visual Basic
- C言語について質問です。
C言語について質問です。 問題:繰り返し命令と階乗の計算 カウンタ用変数nの値を1から10まで1ずつ変化させて、その値を階乗用変数Kiに順次、掛け算していき、10の階乗を求めよ。 ki=1×2×3×4×5×6・・・・・×9×10 <==10! また、1/n!は小数点以下10桁まで求めよ。 実行結果は n n! 1/n! 1 1 1、0000000000 2 2 0、5000000000 3 6 0、1666666667 4 24 0、0416666667 5 120 0、0083333333 6 720 0、0013888889 7 5040 0、0001984127 8 40320 0、0000248016 9 362880 0、0000027557 10 3628800 0、0000002756 続行するには何かキーを押してください、、、、、、 上のように実行結果が出るようにプログラミングしたいのですがわからないので 分かる方よろしくお願いします。 ちなみに今まで習ってきたのは、if文、switch文、do文、while文、for文なんですがこのプログラミングは、for文でおねがいします。 長文失礼しました。
- 締切済み
- 高校
- JAVAのfor文で困っています。
JAVAの勉強をしていますが、本の練習問題でわからなくて困っています。for文で以下の処理を行いたいです(do,whileはなしです)が、 *を5個ごとに改行したいのですが、改行してくれません。 問題の部分↓ if (n % 5 == 0) System.out.println(); 何か良い方法はありませんか?お願いします。 ------------------------------------------------- //(数を読み込んで)だ個数だけ * を5個ごと改行しながら表示 int n = 0; for (int i = n; n <= 0;){ System.out.print("何個*を表示しますか : "); n = stdIn.nextInt(); } for (int i = 1; i <= n; i++){ System.out.print("*"); if (n % 5 == 0) System.out.println(); } ------------------------------------------------
- ベストアンサー
- Java
- perlのfor文について
perlなのですが、以下のfor文の書き方について教えてください。 for($var1,$var2,$var3,$var4){ s/^(?:Company|Organization|Office|Location)\s*:\s*// if( $_ ); s/"(?:[^"]|\")*"//g if( $_ ); 1 while s/\([^()]*\)//g if( $_ ); } これは、どのようなfor文なのでしょうか。 for文の最後に「1 while」とあるのですが、最後の行の1とは どういう意味で、ここでは何をしているのでしょうか。 また、if文が置換の処理より後ろにかかれていますが、実際は if文が先に動いているのでしょうか。 それと、「 1 while s/\([^()]*\)//g if( $_ );」が以下のようにエラー がでます。 「syntax error at x.pl line x, near "s/\([^()]*\)//g if"」 エラーを出さないようにするにはどうしたらよいでしょうか。
- 締切済み
- Perl
- アスタリスクでダイヤ型を作る
アスタリスクでダイヤ型の形を出力するプログラムを作ったのですが 実行例と比較して形が変になってしまいます。また、関数をif文で作ったのですがそれをfor文while文で実行できる形にするにはどのようにしたらいいのでしょうか? 実行例と私が作ったプログラムの実行データを画像に添付しました。 #include <stdio.h> int daiya( int i, int j, int Num ){ if( j<= i+Num && j<=-i+Num && j>= i-Num && j>=-i-Num ){ return 1; } } int main(){ int i, j, n; do{ puts("数字を入力:"); scanf( "%d", &n ); if(n<2||n>9){ printf("入力エラーです。もう一度入力して下さい\n"); } }while(n<2||n>9); for( j=-n/2; j<=n/2; j++ ){ for( i=-n/2; i<=n/2; i++ ){ if( daiya( i, j, n/2 ) == 1 ){ putchar('*'); } else { putchar(' '); } } putchar('\n'); } return 0; }
- ベストアンサー
- C・C++・C#
- do-while文が禁止される理由
コーディング規約の中でdo-while文の使用が禁止されている例をよく見かけます。 確かに、 while(1){ ・・・ if(・・・){ break; } } とした方が判りやすく運用の柔軟性も高いと思いますが、 do-whileはそんなに可読性を落としてしまうものなのでしょうか?
- ベストアンサー
- C・C++・C#
- 線形探索(番兵法)のプログラムについて。
線形探索(番兵法)のプログラムについて考えています。 メイン関数からsearch関数に値を渡してそこで探索させるのですが、 int search(int a[], int n, int key) { int i = 0; a[n] = key; while (1) { if (a[i] == key) break; i++; } return (i == n ? -1 : i); } のwhileを使ったやり方からfor文を使ったやり方に変更したいと思っています。 色々な方法でプログラムを考えてみたいので。 そうすると、なんかうまくいきません。 for文だとどのように考えたらいいのでしょうか?
- ベストアンサー
- C・C++・C#
お礼
おっしゃる通りでした。 条件式は=なら代入、==なら判断をするということで、使用する場所は関係なく、今回の問題は単純に計算ができなかっただけでした。 ありがとうございました。