• ベストアンサー

=と==の違いを教えてください。

os6v100iの回答

  • ベストアンサー
  • os6v100i
  • ベストアンサー率44% (16/36)
回答No.8

質問者様が補足された内容によると while(a%2==1) を while(a%2=1) にするとエラーになるとのことですが 当たり前です。 この場合、左辺がa%2という式なので=で値を代入することができません。 つまり、この場合は==を=にしてしまうと式として成り立たなくなるのです。 というか、コンパイラもその旨、エラーメッセージに出てますよ?

gokugokuR
質問者

お礼

おっしゃる通りでした。 条件式は=なら代入、==なら判断をするということで、使用する場所は関係なく、今回の問題は単純に計算ができなかっただけでした。 ありがとうございました。

関連する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でも出れると思ったのですがそうではないのでしょうか?ご回答よろしくお願いします。

  • C言語

    C言語 10進数n(0<n<256)を2進に変換させろ 配列を使うな do-whileでnを入力させることはできましたが、そこから先がわかりません。 for文を使えと言われたのですが……

  • 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"」 エラーを出さないようにするにはどうしたらよいでしょうか。

  • アスタリスクでダイヤ型を作る

    アスタリスクでダイヤ型の形を出力するプログラムを作ったのですが 実行例と比較して形が変になってしまいます。また、関数を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; }

  • IF文やSelect文を途中で抜ける場合

    for文なら Exit For DO文なら Exit Do IF文やSelect文を途中で抜けるのは何になりますか?

  • do-while文が禁止される理由

    コーディング規約の中でdo-while文の使用が禁止されている例をよく見かけます。 確かに、 while(1){ ・・・ if(・・・){ break; } } とした方が判りやすく運用の柔軟性も高いと思いますが、 do-whileはそんなに可読性を落としてしまうものなのでしょうか?

  • 線形探索(番兵法)のプログラムについて。

    線形探索(番兵法)のプログラムについて考えています。 メイン関数から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文だとどのように考えたらいいのでしょうか?

  • 非常に困ってます

    言語の問題集の回答がないので困っているので誰か教えてください。 私はまだ始めたばかりなので手におえません。 今私が理解しているif文、switch文、for文、while文、do-while文、配列、を 使用してでお願いします。 何重にするかを入力すると、実行例のような正方形が重なった図形を表示するプログラムを作成しなさい。 ファイルを作る際には3,4,5重の場合を実行する。(アスタリスクの数を長さとする)