ホームページ よくある問題 Java で % は何を意味しますか

Java で % は何を意味しますか

Mar 06, 2023 pm 04:48 PM
java オペレーター % 残りを取る

Java では「%」は剰余を意味し、除算して剰余を求めることができる二項算術演算子です。構文は「オペランド 1 % オペランド 2」です。剰余演算子 "%" のオペランドは通常、正の整数、負の数、さらには浮動小数点数です。この演算に負の数が含まれる場合、結果は前の数値が正か負かによって異なります。

Java で % は何を意味しますか

#このチュートリアルの動作環境: Windows7 システム、Java8 バージョン、DELL G3 コンピューター。 Java の

% は、剰余 を意味します。これは、剰余演算を実装し、除算演算を実行して剰余を取得できる算術演算子です。

剰余演算子は % で、これは二項演算子です。そのオペランドは通常、正の整数、負の数値、さらには浮動小数点数です。この演算に負の数値が含まれる場合、結果の符号は数値が正か負かは、前の数値に依存します。

整数の場合、Java の剰余演算規則は次のとおりです。

a%b=a-(a/b)*b 
5%3=5-(5/3)*3=2 
5%-3=5-(5/-3)*-3=2 
-5%3=-5-(-5/3)*3=-2 
-5%-3=-5-(-5/-3)*-3=-2

オペランドに浮動小数点数がある場合、使用される規則は次のとおりです

a%b= a- (b*q)q=int(a/b)

5.2%3.1=5.2-1*3.1=2.1 
5.2%-3.1=5.2-(-1)*(-3.1)=2.1 
-5.2%3.1=-5.1-(-1)*3.1=-2.1 
-5.2%-3.1=-5.1-(-1)*(-3.1)=-2.1

拡張知識:

算術演算Java 演算子は主に数値データの算術演算を整理するために使用され、演算に含まれるさまざまなオペランドに応じて単項演算子と二項演算子に分類できます。

単項演算子

算術単項演算には、- と -- という 3 つがあります。具体的な手順については、表 1 を参照してください。

表 1 単項算術演算演算子名前説明例#- ##自己インクリメント最初に値を取得してから 1 を加算するか、最初に 1 を加算してから値を取得しますa または a1 ずつデクリメント表 1 で、-a は a の反転演算であり、a または a-- は式の演算が完了した後に a に 1 を加算または減算することを示します。 a または --a は、まず a に 1 を加算または減算してから、式の演算を実行します。
int a = 12;
System.out.println(-a);
int b = a++;
System.out.println(b);
b = ++a;
System.out.println(b);
上記のコードの 2 行目は -a で、変数 a を反転し、結果の出力は -12 になります。コードの 4 行目では、まず a を b 変数に代入し、次に 1 を加算します。つまり、最初に値を代入し、次に を代入するため、出力結果は 12 になります。コードの 6 行目では、a に 1 を加算し、次に変数 b に a を代入します。つまり、値を次々に代入するため、出力結果は 14 になります。
否定記号 # 否定演算 #b=-a
#- -
最初に値を取得してから 1 を減算するか、最初に 1 を減算してから値を取得しますa-- または --a

出力結果は以下のようになります。

二項演算子Java で % は何を意味しますか

Java言語の算術演算子 関数of は四則演算を行うことで、よく使う加算( )、減算(-)、乗算(*)、除算(\)に加え、剰余演算(%)もあります。加算 ( )、減算 (-)、乗算 (*)、除算 (\) は、私たちが普段触れる数学演算と同じ意味を持ちます。具体的な手順については、表 2 を参照してください。

表 2 バイナリ算術演算

名前Adda マイナス b の差を求めますa と b/ 割り算#%Remainder
演算子
説明
a と b の合計を求めます。文字列連結操作を実行するために String 型にも使用できます。 a b -minus
a - bMultiply
a の積を求めます * b
a を b
a / b で割った商を求めます
a を b で割ったときの余りを求めます
a % b

算术运算符都是双目运算符,即连接两个操作数的运算符。优先级上,*、/、% 具有相同运算级别,并高于 +、-(+、- 具有相同级别)。例如:

int a = 4, b = 2, c = 3;
int d = a * (b + c) % c;

这种运算规则与数学运算中的规则是相同的。首先计算赋值符号(=)右边配对的括号内的值,其次按从左向右的结合方向计算乘法,最后做求余运算,表达式的结果为 2, 然后把 2 赋值给 d。

例如:

  • int x=2,y=1;表达式 y/x 的结果是 0。

  • float x=2.0f; int y=1; 表达式 y/x 的结果是 0.5。

在 ① 中整型变量 x 和 y 相除,其结果仍为整型数据 0;在 ② 中由于两个不同类型的数据进行运算,此时首先要进行类型转换,会把 int 型的 y 转换成与 x 一样的 float 型,然后相除,最终结果为 float 类型的数字 0.5。

【例1】编写一个程序,输出不同类型的两个数,执行相加、相减、相乘、相除和求余后输入结果。

public static void main(String[] args) {
    float f1 = 9 % 4;// 保存取余后浮点类型的结果
    double da = 9 + 4.5; // 双精度加法
    double db = 9 - 3.0; // 双精度减法
    double dc = 9 * 2.5; // 双精度乘法
    double dd = 9 / 3.0; // 双精度除法
    double de = 9 % 4; // 双精度取余
    System.out.println("整数的算术运算"); // 整数的加、减、乘、除和取余
    System.out.printf("9+4=%d \n", 9 + 4);
    System.out.printf("9-4=%d \n", 9 - 4);
    System.out.printf("9*4=%d \n", 9 * 4);
    System.out.printf("9/4=%d \n", 9 / 4);
    System.out.printf("9%%4=%d \n", 9 % 4);
    System.out.println("\n浮点数的算术运算"); // 浮点数的加、减、乘、除和取余
    System.out.printf("9+4.5f=%f \n", 9 + 4.5f);
    System.out.printf("9-3.0f=%f \n", 9 - 3.0f);
    System.out.printf("9*2.5f=%f \n", 9 * 2.5f);
    System.out.printf("9/3.0f=%f \n", 9 / 3.0f);
    System.out.printf("9%%4=%f \n", f1);
    System.out.println("\n双精度数的算术运算"); // 双精度数的加、减、乘、除和取余
    System.out.printf("9+4.5=%4.16f \n", da);
    System.out.printf("9-3.0=%4.16f \n", db);
    System.out.printf("9*2.5=%4.16f \n", dc);
    System.out.printf("9/3.0=%4.16f \n", dd);
    System.out.printf("9%%4=%4.16f \n", de);
    System.out.println("\n字符的算术运算"); // 对字符的加法和减法
    System.out.printf("'A'+32=%d \n", 'A' + 32);
    System.out.printf("'A'+32=%c \n", 'A' + 32);
    System.out.printf("'a'-'B'=%d \n", 'a' - 'B');
}

保存文件并运行,输出的结果如下所示。

Java で % は何を意味しますか

本示例中使用了 4 种类型来执行算术运算。其中,整数类型的结果最容易理解,浮点型和双精度型返回的结果都带有小数,字符型将会把字符转换为 ASCII 码再运算。

从输出结果中可以看到,整数之间的运算结果只保留整数部分,浮点型运算时保留 6 位小数部分,双精度运算时则保留 16 位小数部分。

注意:Java 语言算术运算符的优先级是先乘除后加减。例如在表达式“a-b*c”中,b 的左侧为减号,右侧为乘号,而乘号优先级高于减号,因此该表达式可以转换为“a-(b*c)”。

如果在一个表达式中的多个算术运算符的优先级别相同,例如“a-b+c”,此时将按照运算符的结合方向决定顺序。算术运算符的结合方向都是“从左至右”,即先左后右。因此 b 先与减号结合,执行“a-b”的运算,再执行加 c 的运算。

更多编程相关知识,请访问:编程教学!!

以上がJava で % は何を意味しますかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

エッジPDFビューアが機能していません エッジPDFビューアが機能していません Aug 07, 2025 pm 04:36 PM

testthepdfinanapptodetermineisisiis withthefileoredge.2.enablethebuiltinpdfviewerbyturningoff "Alwaysopenpdffilesexternally" and "downloadpdffiles" inedgesettings.3.Clearbrowsingdataincluding andcachedfilestororeveren

JavaにシンプルなTCPクライアントを実装する方法は? JavaにシンプルなTCPクライアントを実装する方法は? Aug 08, 2025 pm 03:56 PM

importjava.ioandjava.net.socketfori/oandsocketCommunication.2.CreateAsocketObjectToConnectTotheServerusingHostNameandport.3.USEPRINTWRITERTOSENDDATAVIAOUTSTREAMANDBUFFEREDEDEDEDEDEDEREDEREDERTOREADEREADSERVERRESPONSESSTREAM.

Dockerを使用してKubernetesにJavaアプリケーションを展開します Dockerを使用してKubernetesにJavaアプリケーションを展開します Aug 08, 2025 pm 02:45 PM

コンテナ化されたJavaアプリケーション:DockerFileを作成し、Eclipse-Temurin:17-jre-Alpineなどの基本的な画像を使用し、JARファイルをコピーしてスタートアップコマンドを定義し、DockerBuildを介して画像を作成し、Dockerrunでローカルに実行します。 2。画像をコンテナレジストリに押します:Dockertagを使用して画像をマークし、DockerHubやその他のレジストリにプッシュします。最初にdockerloginにログインする必要があります。 3. Kubernetesへの展開:展開を書き込み展開を定義し、レプリカの数、コンテナ画像、リソース制限の数を設定し、service.yamlを作成して作成して作成します

VSエクスプローラーパネルに焦点を当てるコードショートカット VSエクスプローラーパネルに焦点を当てるコードショートカット Aug 08, 2025 am 04:00 AM

VSCODEでは、ショートカットキーを介してパネルと編集領域をすばやく切り替えることができます。左のエクスプローラーパネルにジャンプするには、Ctrl Shift E(Windows/Linux)またはCMD Shift E(MAC)を使用します。編集エリアに戻って、Ctrl `またはescまたはctrl 1〜9を使用します。マウスの操作と比較して、キーボードのショートカットはより効率的であり、エンコードリズムを中断しません。その他のヒントには、ctrl kctrl eフォーカス検索ボックス、f2の名前変更ファイル、ファイルの削除、開いたファイルの入力、矢印キーの展開/崩壊フォルダー。

修正:Windowsアップデートはインストールに失敗しました 修正:Windowsアップデートはインストールに失敗しました Aug 08, 2025 pm 04:16 PM

runthewindowsupdateTroubleshoterviasettings> update&security> troubleShoottoAutoMonissues.2.resetwindowsupDateComponentsは、related -distributionandCatrot2Folders、restartingtherserviceStocleを削除します

Javaオブジェクトのシリアル化のプロセスは何ですか? Javaオブジェクトのシリアル化のプロセスは何ですか? Aug 08, 2025 pm 04:03 PM

JavaSerializationConvertSanobject'sStateIntoAbyTeStreamForStorageorTransmission、およびseRializationは、objectfromthatstream.1.1.toenablesimementtheRializable Interface.2.usobjectputStreamToseRializeAnobject、Savin

Javaで時間ループを使用する方法 Javaで時間ループを使用する方法 Aug 08, 2025 pm 04:04 PM

awhileloopinjavarepeatedecutesexecuteslongastheconditionistrue;

Python numpy線形代数の例 Python numpy線形代数の例 Aug 07, 2025 pm 04:52 PM

Numpyは、Pythonの科学コンピューティングのコアライブラリです。線形代数操作の取り扱いが得意であり、numpy.linalgモジュールで効率的なndarrayアレイと機能を提供します。 1. NP.LinalG.Solve(A、B)を使用して線形方程式システムax = bを解き、ソリューションベクトルXを取得します。 2。マトリックス転置はA.Tを介して実装されます。 3.マトリックス乗算は、np.dot(a、b)またはa@bに使用できます。 4.マトリックス逆はnp.linalg.inv(a)によって計算され、マトリックスは可逆的である必要があります。 5.決定要因は、np.linalg.det(a)によって与えられます。 6.固有値と固有ベクトルはnp.linalg.eig(a)を介して取得され、固有ベクトルは正規化されています。