[Java] Mécanisme de calcul, opérateurs et conversion de type

Comment fonctionnent les calculs Java

5 + 4

Cela reste inexpliqué. Java vous donnera la réponse de 9 en ajoutant 5 et 4.

Puis

5 + 4 - 3

Si oui, comment Java calcule-t-il? : penser: Tout d'abord

Ajoutez 5 et 4 pour obtenir 9. Puis soustrayez 9-3 pour obtenir 6.

À propos, ces 5 et 4 et 3 sont appelés ** opérande **.

Le traitement des calculs de Java selon la formule est appelé ** évaluation **. Le résultat du calcul obtenu à l'aide des opérandes et des opérateurs est appelé ** brouillé **. Dans le cas de 5 + 4 --3 dans la formule précédente, évaluez d'abord 5 + 4 et transformez-le en 9. Puis évaluez 9-3 et transformez-le en 6. C'est comme: sourire:

5 + 4 * 3

Une formule avec un mélange de multiplications. Même ordre que celui appris à l'école: sourire:

Tout d'abord, évaluez-le avec 4 ✕ 3 et il se transforme en 12. Ensuite, il évalue 5 + 12 et se transforme en 17.

(5 + 4) * 3

Encore une fois, l'ordre est le même que j'ai appris à l'école: sourire: Tout d'abord, calculez le contenu de (). Évaluez (5 + 4) et transformez-le en 9. Puis évaluez 9 ✕ 3 et transformez-le en 27.

.


5 / 4

Que se passe-t-il dans ce cas? : en pensant: La réponse est 1,25 si elle est calculée normalement. Cependant, il n'apparaît pas dans 1.25. La bonne réponse est 1.

La raison est simple: sourire: C'est parce que c'est un calcul entre des entiers. La partie après la virgule décimale est tronquée.

Donc, si vous voulez afficher après la virgule décimale

5,0 / 4 ou 5 / 4,0 ou 5,0 / 4,0

Et l'un ou l'autre ou les deux seront affichés comme 1,25 si vous en faites une fraction: sourire:

Opérateur d'assignation

: sunny: assigne le contenu de l'opérande droit à la variable de l'opérande gauche

Je l'ai expliqué un peu difficile, mais j'espère que ce sera plus facile si vous vous souvenez des variables.

Exemple.java


number = 10;

C'est celui-ci: sweat_smile: L'opérande de droite est 10 ici. L'opérande de gauche est le nombre ici. Remplacez donc par 10 le nombre: sourire:

Les opérateurs d'affectation peuvent être combinés avec d'autres opérateurs en plus de =.

Exemple a + = 5 (signifiant a = a + 5) a- = 5 (signifiant a = a-5)

Tel. Le sens est d'ajouter 5 à a et de remplacer a. Soustrayez 5 à a et attribuez-le à a. Ce sera.

Si a contient 6 comme valeur initiale 6 + 5 est calculé en premier pour obtenir 11 et 11 est attribué à a. Dans le cas de la soustraction, 6-5 est d'abord calculé pour devenir 1, et 1 est attribué à a.

Opérateur d'incrémentation et opérateur de décrémentation

J'ai expliqué que l'opérateur d'affectation est a + = 5 (ce qui signifie a = a + 5). Si vous souhaitez augmenter seulement 1, il existe d'autres façons de l'écrire.

Opérateur d'incrément.


a++;

Synonyme de a + = 1 ou a = a + 1: smile: L'augmentation de la valeur de cette variable de 1 s'appelle l'opérateur d'incrémentation.

Opérateur de décrémentation.


a--;

Contrairement à l'opérateur d'incrémentation La diminution de la valeur d'une variable de 1 est appelée un opérateur de décrémentation.

Fondamentalement, l'opérateur d'incrémentation / décrémentation n'est pas utilisé avec d'autres opérateurs. Si vous les utilisez ensemble, une légère erreur de calcul se produira. Par conséquent, sauf dans certaines circonstances, il est préférable de l'utiliser seul. (Ne pas mélanger avec d'autres opérateurs tels que a ++ * 50, seulement a ++; lors de l'utilisation)

Conversion de type

.


5 / 4

Si vous souhaitez afficher le calcul de la virgule décimale au moment de ce calcul

5,0 / 4 ou 5 / 4,0

Je pense que je vous ai dit de remplir. Ceci est également appelé conversion de type.

Quelle est exactement cette conversion de type? ?? : en pensant: C'est-à-dire que la conversion de type ** consiste à convertir un type de données (tel que int ou double) en un autre type de données. ** **

Donc, même si vous entrez 5.0 / 4, l'ordinateur le fera pour vous.

Ah oui oui. Vous devriez demander 5.0 / 4.0.

Il interprète et affiche automatiquement la réponse sous la forme 1.25. Il convertit automatiquement le type d'une fraction / entier en une fraction / fraction.

Conversion de type d'entier en entier

Ensuite, pouvez-vous convertir automatiquement quelque chose? : penser: Ce n'est pas le cas.

Nom du modèle Plage d'entiers stockables
byte -Entier entre 128 et 127
short -Entier entre 32768 et 32767
int -Un entier compris entre 2147483648 et 2147483647
long -Un entier compris entre 9223372036854775808 et 9223372036854775807

Si vous regardez la figure ci-dessus Pour l'octet, un entier de -128 à 127 S'il est court, un entier de -32768 à 32767 Il est devenu.

J'aimerais que vous imaginiez un peu ...

byte est une petite boîte car la plage d'entiers qui peuvent être stockés est plus petite que celle de short. Étant donné que short a une plus grande plage d'entiers que d'octets, il doit s'agir d'une grande boîte.

Les petites boîtes peuvent être stockées dans de grandes boîtes. Cependant, les grandes boîtes ne peuvent pas être stockées dans de petites boîtes. Il dépasse ou la boîte elle-même est cassée.

Parallèlement à cela, la conversion de type peut être effectuée de petite à grande. Cependant, en principe, la conversion de type n'est pas possible de grand à petit, à quelques exceptions près.

Entier → fraction

Comme expliqué dans 5.0 / 4, il peut être représenté par une fraction, donc la conversion de type est possible. Vous pouvez taper convertir d'un entier en flottant, et vous pouvez taper convertir d'un entier en double.

Fraction → Fraction

Avec l'entier, la taille de la boîte est pertinente. Parce que le double a une boîte plus grande que le flotteur La conversion de type est possible de float en double, La conversion de type n'est pas possible du double au float.

Fraction → entier

Je suis désolé d'être venu plusieurs fois, mais je pense que la réponse calculée lorsque je l'ai réglé à 5,0 / 4 était de 1,25. En d'autres termes, la conversion de type n'est pas possible de fractions en nombres entiers.

Récapitulatif de la conversion de type

Ici, je voudrais vous annoncer les 6 meilleures tailles de boîtes: tada :: elevated_hands: La boîte de 1ère place est la plus grande et la 6e case est la plus petite.

Jajan!

Classement :gift:Taille de la boîte meilleure 6:gift:
Première place double
2ème place float
3ème place long
4e int
5ème place short
6ème place byte

Est-ce un peu plus facile à imaginer?

Byte-kun à la 6ème place a la plus petite case, vous pouvez donc changer le type de la 1ère à la 5ème place dans une case plus grande que vous. Long en 3ème place ne peut pas changer le type de la 4ème à la 6ème place dans une case plus petite que lui, Vous pouvez changer le type pour les 1ère et 2ème cases, qui sont plus grandes que vous. Le double de la 1ère place est le propriétaire de la plus grande boîte, il est donc impossible de changer de type.

Je vais écrire sur la façon de changer le type maintenant: sweat_smile:

Exemple.java


public class Main {
	public static void main(String[] args) {
		int number = 5;
		double decimal = number;
		System.out.println(decimal);
	}
}

Sur la troisième ligne, j'ai attribué l'entier 5 au numéro de variable. C'est un entier car son type est int.

Dans la 4ème ligne, j'ai attribué le numéro de variable à la variable décimale. Le type étant double, il est converti en fraction.

console.


5.0

Représenter la division des variables entières sous forme de fraction

Exemple.java


public class Main {
    public static void main(String[] args) {
        int number1 = 5;
        int number2 = 2;
        System.out.println(number1 / number2);
    }
}

Comme mentionné ci-dessus, le résultat de la division des variables entières est l'entier 2. Si vous voulez exprimer correctement même un petit nombre ...? : en pensant:

Ce n'est pas une erreur de changer le type int en type double, Il est difficile de le changer à chaque fois.

Exemple.java


System.out.println((double)number1 / number2);

C'est OK si vous ajoutez (double) avant la variable dans la formule: smile: Au fait, il est normal de mettre (double) avant numéro2: sourire:

** Cela s'appelle un cast car il est converti manuellement de cette manière. ** **

Du grand moule au petit moule

En principe, la conversion de type n'est pas possible de grande à petite, à quelques exceptions près. Je t'ai dit. À proprement parler, cela peut être fait. C'est: sweat_smile: La partie "exception": sweat_smile: Ceci est également appelé un cast car il convertit de force le type. ** **

Int-kun, qui est le 4e plus grand de la taille de la boîte. Double-kun, qui a la plus grande boîte, essaie de convertir en int.

(Tapez le nom de la destination de la conversion) Expression

Vous pouvez forcer la conversion de type avec.

Exemple.java


public class Main {
	public static void main(String[] args) {
		int number = (int)5.8;
		System.out.println(number);
	}
}

console.


5

La fraction 5,8 est maintenant l'entier 5: sourire:

Si vous pouvez passer d'un grand type à un petit type, vous n'avez pas à vous en soucier: pensez: Je pense, mais je ne le recommande pas beaucoup. ..

En effet, certaines des données qui sont forcées dans un petit moule peuvent être perdues, ou la pièce manquante peut entraîner un dysfonctionnement. Alors ne l'utilisez pas sauf si vous devez vraiment l'utiliser en dernier recours: sweat_smile:

Recommended Posts

[Java] Mécanisme de calcul, opérateurs et conversion de type
Conversion de type Java
Etude Java n ° 3 (conversion de type et exécution d'instruction)
[Java] Conversion de type de date
[Java] Conversion de type de liste / type de tableau
[Java] Comparaison de la vitesse de conversion de type
Java Primer Series (conversion de type)
Java pour les débutants, les expressions et les opérateurs 1
Mécanisme de référence Java (pile et tas)
Java pour les débutants, les expressions et les opérateurs 2
Conversion entre Kotlin nullable et Java facultative
Conversion de type de données de date Java (date, calendrier, chaîne)
[Explication facile à comprendre! ] Conversion de type de type de référence en Java
[Java ~ A propos de la définition de variable et de la conversion de type ~] Note d'étude
Remarques sur les opérateurs utilisant Java ~ Type chaîne ~
[Connaissance de base de Java] À propos de la conversion de type
Conversion de type Java 8 LocalDateTime (String, java.util.Date)
Conversion de type du type java Big Decimal au type String
Revue Java ② (calcul, séquence d'échappement, règle d'évaluation, conversion de type, instruction d'exécution d'instruction)
[Introduction à Java] À propos de la conversion de type (distribution, promotion)
Conversion de type facultative et valeur de retour (prise en charge nulle)
Java Type facultatif
[Traitement × Java] Type de données et programmation orientée objet
Java et JavaScript
XXE et Java
Conversion de type Java (chaîne, entier, date, calendrier, etc.)
Déclaration / initialisation de variable Java / type de données (distribution et promotion)
Apprentissage pour la première fois des expressions et opérateurs Java # 3
A propos du type de données de base Java et de la mémoire du type de référence
Conversion entre objets Java et JSON à l'aide de Moshi
Getter et Setter (Java)
[Java] Thread et exécutable
Java Learning 2 (Apprenez la méthode de calcul)
Java vrai et faux
Organiser le mécanisme de Java GC
[Java] Comparaison des chaînes de caractères et && et ||
[Java] Type de données ①-Type de base
Conversion de type Uri → String, String → Uri
[Java, Kotlin] Variance de type
Champ de type de classe Java
Détermination de type en Java
Étudier Java # 1 (type typique)
Java - Sérialisation et désérialisation
[Java] Arguments et paramètres
timedatectl et Java TimeZone
[Java] Branchement et répétition
[Java] Types de variables et types
java (classe et instance)
[Java] Surcharge et remplacement
Conversion Endian avec JAVA
Opérateurs et opérations de base
Trouvez la classe d'adresse et le type d'adresse à partir de l'adresse IP avec Java
[Java Bronze] Mémo d'apprentissage (interface, méthode statique, conversion de type, etc.)