exercice java

moko

Touriste
Préparez la logique du programme suivant :
un module plusUn prend en paramètre un entier et il se contente d'ajouter 1 à l'entier reçu en paramètre.
 

eGm_

Gibon Blasé
mais omg quoi ?

public int plusUn(int myInt)
{
return myInt++;
}
 

titoum

OPTC:970342646
et ton try catch exception pour voir si l'user sait ce que c'est qu'un entier?

FAIL!
 
Code:
public int plusUn(int nb){
return nb+1;
}
 

k o D

Elite
mais omg quoi ?

public int plusUn(int myInt)
{
return i++;
}
Sans erreur de compil:

public int plusUn(int myInt)
{
return myInt++;
}

:p

Mais en effet... je ne vois pas pourquoi tu ouvres un post pour un truc aussi trivial ^^
 

eGm_

Gibon Blasé
Sans erreur de compil:

public int plusUn(int myInt)
{
return myInt++;
}

Variantes:

public int plusUn(int myInt)
{
myInt = myInt + 1;
return myInt;
}

:p

Mais en effet... je ne vois pas pourquoi tu ouvres un post pour un truc aussi trivial ^^

corrigé avant ton post :D
 

k o D

Elite
je vois surtout pas pq vous lui répondez...
Parce que c'est marrant, on peut commencer à se casser la tête.

Fais la même chose avec un Integer en paramètre :-D
 

h.lecter

The Cannibal
mais parce que l'homme aime les défis.
 

Jereck

Α & Ω
Staff
Sans erreur de compil:
Pas d'erreur de compil dans du pseudo-code ;)

Et la question, c'est bien "la logique", de la logique, c'est pas lié à un language.
 

k o D

Elite
Pas d'erreur de compil dans du pseudo-code ;)

Et la question, c'est bien "la logique", de la logique, c'est pas lié à un language.
Ce n'était pas du pseudo-code mais il a edit :p
L'intitulé de la discussion c'est "exercice java"
 

Jereck

Α & Ω
Staff
C'est la formulation de la question qui compte, pas le titre qu'il lui a donné ...
 

Jereck

Α & Ω
Staff
(oui, je chicane, mais c'est samedi matin, dans un thread qui ne sert à rien, alors ...)
 

EINST

⭐⭐⭐⭐⭐
mais omg quoi ?

public int plusUn(int myInt)
{
return myInt++;
}
c'est encore mieux d'écrire ++myInt que myInt++ si tu veux une forme compacte car vu que myInt++ est post-increment, il y a de forte chance qu'il te renvoie myInt et non myInt+1.

ou utiliser la forme de largo myInt+1.


et si tu veux gérer l'overflow:

if (myInt>Integer.MAX_VALUE-1){
throw new RuntimeException("Overflow occured");
}
else
return myInt+1;
 
c'est encore mieux d'écrire ++myInt que myInt++ si tu veux une forme compacte car vu que myInt++ est post-increment, il y a de forte chance qu'il te renvoie myInt et non myInt+1.

ou utiliser la forme de largo myInt+1.


et si tu veux gérer l'overflow:

if (myInt>Integer.MAX_VALUE-1){
throw new RuntimeException("Overflow occured");
}
else
return myInt+1;
Il n' y pas de fortes chances ... c'est le cas.

La forme que j'ai utilisée n'est pas la plus "jolie" mais vu le niveau du gars, je préférais la jouer simple :-D
 

Jereck

Α & Ω
Staff
c'est encore mieux d'écrire ++myInt que myInt++ si tu veux une forme compacte car vu que myInt++ est post-increment, il y a de forte chance qu'il te renvoie myInt et non myInt+1.

ou utiliser la forme de largo myInt+1.


et si tu veux gérer l'overflow:

if (myInt>Integer.MAX_VALUE-1){
throw new RuntimeException("Overflow occured");
}
else
return myInt+1;
Quel intérêt de ce test ?

a. MyInt ne sera jamais supérieur à MaxValue.
b. Si MyInt est égal à MaxValue, le "MyInt+1" provoquera déjà de lui-même une exception.

Et en attendant, pour les (2^32)-1 autre cas, tu flingue les perfs de la fonction à effectuer un test qui au final ne sert à rien ...

à la limite, si tu veux vraiment prendre la main sur ce cas bien précis, fais un try-catch ...
 

Jereck

Α & Ω
Staff
Et sinon, si j'avais le choix, je le ferais en C# avec une méthode d'extension

public class Utilities{
public static int PlusUn(this int myInt){
return myInt + 1;
}
}

Histoire de pouvoir faire ça :
int x = 12345;
int y = x.PlusUn();

Ce qui est quand même beaucoup plus joli ...
 

k o D

Elite
Ah voilà vous voyez qu'il y a moyen de s'amuser sur une bêtise :D
 

h.lecter

The Cannibal
Et sinon, si j'avais le choix, je le ferais en C# avec une méthode d'extension

public class Utilities{
public static int PlusUn(this int myInt){
return myInt + 1;
}
}

Histoire de pouvoir faire ça :
int x = 12345;
int y = x.PlusUn();

Ce qui est quand même beaucoup plus joli ...
Mais plus long.
 
Haut