プログラミングのキモ01 ~if…else文

2010年10月3日

いまやっているのはJavaScriptですが、どんな言語でもプログラミングの初心者にとってまず1つキモとなるのがif…else文による条件分岐なのかなぁ、と思います。

excel等でもif文はありますし、シロかクロかな関数なので、理論としては難しいことはないと思います。
でも、条件判定をどうするかが難しい。ここをちゃんと理解しないとプログラミングはいばらの道かも。。。。

ここでのポイントは、

if (yourscore == perfect) というように2つの数値を等しいことを表す際に、=記号を2つ書くこと。

yourscore = perfect と書いちゃうと、「変数yourscoreに、変数perfectの値を代入する」という意味になってしまいます。

今回のは、点数を入れると、条件別に

  • 「100点の場合」
  • 「100点超の場合」
  • 「80点以上100点未満の場合」
  • 「50点未満の場合」
  • 「その他(50点以上80点未満)の場合」

の5つのパターンのダイアログを用意しました。


	var	yourscore; //変数を宣言:テストの点数
	var perfect = 100; //基準値1:100点満点
	var scoreA = 80; //基準値2:80点以上はA
	var scoreB = 50; //基準値3:50点以上はB

	yourscore = prompt("あなたのテストの点数は何点?",""); //yourscoreの値をダイアログから入力させる
	yourscore = parseInt(yourscore); //yourscoreの値を数値として扱わせる

	if (yourscore == perfect) { //100点の場合
		alert ("100点満点すばらしい!");
	}	else if (yourscore > perfect) { //100点超の場合
		alert ("そんな点数ないよ!");
	}	else if (yourscore >= scoreA) { //80点以上100点未満の場合
		alert ("頑張ったね!A評価です");
	}	else if (yourscore < scoreB) { //50点未満の場合
		alert ("ドンマイ!C評価です");
	}	else { //その他(50点以上80点未満)の場合
		alert ("惜しい!B評価です");
	}

	document.write("おしまい!");

結局今回はB判定の場合を「その他」(else)にしたのですが、最初は、【満点→A→B→C→不正点数】の順で条件判定しようとして、ややこしくて変えました。

この程度なら簡単ですが、条件判定をどのように、どの順で、どういう基準で行っていくか?というのがどうやらプログラムを作るうえで頭を使わないといけないところのようです。
プログラマーさんって大変だな。。。