2020.03.13
2025.03.25
計算の優先順位
四則演算(+、-、×、÷)には計算の優先順位があるので、計算の順番を間違うと答えが変わります。
例1)10-3×2の場合、正しい計算結果は4です。(10-3×2 = 10-6 = 4) 例2)6×8-5×4の場合、計算結果は28です。(6×8-5×4 = 48-20 = 28)
この2つの演算子は、計算する順番に関係なく同じ計算結果になります。
例3)5+9-3の場合、正しい計算結果は11です。(5+9-3 = 14-3 = 11) 例4)5-3+9の場合、正しい計算結果は11です。(5-3+9 = 2+9 = 11)
例5)12÷4×3の場合、正しい計算結果は9です。(12÷4×3 = 3×3 = 9) 例6)12×3÷4の場合、正しい計算結果は9です。(12×3÷4 = 36÷4 = 9) 例7)12×3÷6÷2の場合、正しい計算結果は3です。(12×3÷6÷2 = 36÷6÷2 = 6÷2= 3)
例えば、例5)の掛け算部分(4×3)を先に計算すると間違った計算結果になります。
12÷4×3 = 12÷12 = 1 ← 間違い
プログラム言語で式を記述する場合も、この計算の優先順位のルールに従います。
Javaソースコード
OperatorPreceden.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033
public class OperatorPreceden { public static void main( String[] args ) { int a; // a = 10 - 3 * 2; System.out.println( "10-3×2=" + a ); // a = 6 * 8 - 5 * 4; System.out.println( "6×8-5×4=" + a ); // a = 5 + 9 - 3; System.out.println( "5+9-3=" + a ); // a = 5 - 3 + 9; System.out.println( "5-3+9=" + a ); // a = 12 / 4 * 3; System.out.println( "12÷4×3=" + a ); // a = 12 * 3 / 4; System.out.println( "12×3÷4="+ a ); // a = 12 * 3 / 6 / 2; System.out.println( "12×3÷6÷2=" + a ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis OperatorPreceden.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac OperatorPreceden.java
実行
C:\talavax\javasample>java OperatorPreceden
実行結果
10-3×2=4 6×8-5×4=28 5+9-3=11 5-3+9=11 12÷4×3=9 12×3÷4=9 12×3÷6÷2=3
優先順位のルールを気にせず計算式を記述したければ、先に計算したい計算部分を括弧で囲んでください。
以下は、上記の2つの例を括弧を付けて記述した例です。
例1)10-3×2の場合、10-(3*2)
例7)12×3÷6÷2の場合、((12*3)/6)/2
括弧で囲まれた計算式が優先して計算されるので優先順位のルールを気にする必要がありません。ただし、括弧で囲まれた計算式も優先順位のルールに従います。
以上です。
計算に関するコンテンツ
「計算」に関係があるコンテンツをまとめています。
- コンピュータの5大装置
- アルゴリズムとは
- 円弧の長さ
- 面積とは
- 面積を計算するプログラム
- 多次元配列
- 配列
- 代入演算子
- 同じマンハッタン距離の座標をプロット
- xy-座標の描画するクラス
- 2進数
- ビット演算子
- ビットシフト
- byte型をint型へ変換
- 計算結果表示プログラム
- 「a = a + 1」とは?
- 画像の中心座標
- 時計の短針と長針の角度
- 最も近い座標を探す
- コラッツ予想の確認
- テーブルによる色変換 その1
- 色をARGB値に分解
- 値の比較
- コンピューター
- 消費税計算
- 数学座標→画像座標変換
- 日時
- 2つのサイコロの出目の和の確率
- ゾロ目の出る確率
- 整数の桁数を求める(for文を使用)
- 整数の桁数を求める(while文を使用)
- 割り算(除算)について
- 0.0に近い値
- 整数の割り算(除算)について
- double型のもつ誤差
- エッジ(境界)検出
- 正三角形の描画
- 正三角形
- 画像の2倍拡大
- 生年月日から年齢を計算
- 黄金角とは
- 黄金比とは
- 黄金比とは
- GPU
- グラフの表示
- グラデーション
- グラデーション画像(横方向)
- グラデーション画像(放射状)
- グラデーション画像(4隅の色)
- より自然なグレースケール変換
- 時分秒変換
- 複利計算(元利合計)
- if文
- RGBの平均値
- インクリメント、デクリメント演算子
- インスタンス
- 内角
- 点が円内かを判定
- 二等辺三角形
- お札とコインの数
- Javaプログラミングの基礎
- 学習用のJavaソースコード
- Javaでいろいろ試してみる
- 九九(くく)の表を作る
- 九九(くく)の表を作る その2
- 九九(くく)の表を作る その5
- ライン(line)
- 積和演算
- マルウェア
- 数学関数(絶対値)
- 球の表面積/体積計算
- 円の面積計算
- 立方体の表面積/体積計算
- 直方体の表面積/体積計算
- 平行四辺形の面積計算
- 台形の面積計算
- 三角形の面積計算
- バビロニアの平方根
- 円周率πを計算で求める その1
- 数学関数(立方根)
- 数学関数 三角関数 cos
- 角度の正規化
- 数学関数(2点間の距離)
- 数学関数(2点間の距離 - 3次元)
- 数学定数 自然対数の底e
- 正三角形の面積計算
- 正三角形の面積計算 その2
- 数学関数(偶数・奇数)
- 階乗
- フィボナッチ数列
- フィボナッチ数列(再帰)
- フィボナッチ数列(配列)
- 最大公約数 その2
- ユークリッド互除法
- 格子座標から円周率πを計算
- 三角形の面積計算(ヘロンの公式)
- 円周率πを計算で求める その2
- 数学関数(対数)
- 中点
- 数学関数(複数の値の最小値と最大値)
- ニュートン法
- ニュートン法で平方根
- ニュートン法で平方根 その2
- ニュートン法で平方根 その3
- 数値微分
- 完全数
- 数学定数 円周率π(パイ)
- 各位(くらい)の値を求める
- 指定の位(くらい)の値を求める
- 数学関数(累乗)
- 整数の累乗
- 10のN乗かを判定
- ピタゴラスの定理
- 二次方程式の解の公式
- 角度とラジアンの相互変換
- 数学関数(乱数)
- 回転行列
- 数学関数(小数第N桁四捨五入)
- 数学関数(符号)
- 数学関数 三角関数 sin
- 値の2乗
- 数学関数(平方根)
- 整数の平方根計算
- 1からNの和
- 数学関数 三角関数 tan
- tan(タンジェント)
- 数学関数(複数の値の合計と平均)
- 三角関数 計算方法
- 数学関数(小数第N桁切り捨て)
- メソッド
- short型の掛け算(乗算)
- 足し算とビットシフトによる掛け算
- 画像をセピア色にする
- 画像を操作するクラスの作成
- N値化
- 値上げ率の計算
- 最も近い値を取得
- 画像の色反転
- ノイズ画像の作成
- 画像にノイズを加える
- 正確な割合のノイズ画像作成
- オブジェクト指向
- 演算子
- 象限
- 塗りつぶし円
- 円模様(円の整列)
- 円模様2(隙間の少ない整列)
- 同心円模様
- 放射状模様
- 円周上のランダムな座標を求める その1
- 円周上のランダムな座標を求める その2
- 円周上のランダムな座標を求める その3
- 極座標系
- プログラミング言語
- プログラミング
- 乱数で文字列を生成
- 長方形
- 再帰呼び出し
- 正六角形
- return文
- 利益率の計算
- キーボード入力した角度のsin、cosを計算
- キーボード入力した値の絶対値
- キーボード入力した値を2乗(自乗)
- 白銀比とは
- 画像をぼかす
- 空間フィルタリング
- 掛け算なしで平方表の作成
- 正方形
- ステンドグラス風画像
- 2つ文字列が等しいかを判定
- 文字列の作成と初期化
- 文字数字を数値に変換
- 2進数を整数に変換
- Javaのプログラム構成
- 和の公式
- 和の公式 その2
- 表面積
- 剰余(余り)計算プログラム
- 「割り切れる」とは?
- switch文
- 三項演算子
- 円を描く(テキスト版)
- 2倍と左ビットシフトの速度
- 時間計測
- 等分除(とうぶんじょ)
- 型キャスト
- 非圧縮
- ITで使われる単位
- 単位円
- 単位ベクトル
- ウサギ算
- 変数の初期値
- 無限大 Infinity
- 変数の最小値・最大値
- 非数値
- オーバーフロー・アンダーフロー
- 変数について