CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Help Programme en java

Zybang
Zybang
Niveau 3
29 février 2016 à 14:27:25

Bonjour je suis en train d apprendre du java cependant j ai un petit soucis

voici mon code

package project1;

import java.util.*;

public class sdz {

/**
* @param args
*/
public static void main(String[] args){

Scanner sc = new Scanner(System.in);

//premier texte
System.out.println("convertissuer de degrés Celsius en degrés Fahrenheit");
System.out.println("----------------------------------------------------");

char nouv = ' ';
do {
System.out.println("Choisissez le mode de conversion");
System.out.println("\n1- Convertisseur Celsius - Fahrenheit");
System.out.println("\n2- Convertisseur Fahrenheit - Celsius");

int converssion = sc.nextInt();

int c = converssion;

if(c == 1)
{
System.out.println("Temperature à convertir : ");

double temperature = sc.nextDouble();

double resultat = temperature * 9 / 5 + 32;

System.out.println(temperature+ " °C correspond à : " +resultat+ " °F");
}

if(c == 2)
{
System.out.println("Temperature à convertir : ");

double temperature1 = sc.nextDouble();

double resultat1 = (temperature1 - 32) * 5/9;

System.out.println(temperature1+ " °F correspond à : " +resultat1+ " °C");
}

System.out.println("\nSouhaitez vous convertir une autre température ? (O/N)");

String nouv = sc.nextLine();

}while (nouv =='O');

}

}

le prob c est que sur cette ligne

String nouv = sc.nextLine();

le "nouv" indique une erreur

je n arrive pas a resoudre se prob il me damande de la renommer "nouv1"
Mais moi je veux qu il me demande d ecrire O ou N.

Quelqu un a la solution ??

Merci

Cordialement

Message édité le 29 février 2016 à 14:28:03 par Zybang
Grimmys
Grimmys
Niveau 19
29 février 2016 à 14:34:44

Salut,

En fait, plus tôt dans ton code, tu déclare deja la variable nouv ( en lui donnant le type char ).

Du coup, le compilateur n'accepte pas cette nouvelle déclaration.
Si tu veux garder le même nom, il va falloir supprimer la seconde déclaration en se contentant de conserver le type char...

Zybang
Zybang
Niveau 3
29 février 2016 à 14:47:00

Merci j ai supp la variable qui etait plus haut

voici le code

package project1;

import java.util.*;

public class sdz {

/**
* @param args
*/
public static void main(String[] args){

Scanner sc = new Scanner(System.in);

//premier texte
System.out.println("convertissuer de degrés Celsius en degrés Fahrenheit");
System.out.println("----------------------------------------------------");

do {
System.out.println("Choisissez le mode de conversion");
System.out.println("\n1- Convertisseur Celsius - Fahrenheit");
System.out.println("\n2- Convertisseur Fahrenheit - Celsius");

int converssion = sc.nextInt();

int c = converssion;

if(c == 1)
{
System.out.println("Temperature à convertir : ");

double temperature = sc.nextDouble();

double resultat = temperature * 9 / 5 + 32;

System.out.println(temperature+ " °C correspond à : " +resultat+ " °F");
}

if(c == 2)
{
System.out.println("Temperature à convertir : ");

double temperature1 = sc.nextDouble();

double resultat1 = (temperature1 - 32) * 5/9;

System.out.println(temperature1+ " °F correspond à : " +resultat1+ " °C");
}

System.out.println("\nSouhaitez vous convertir une autre température ? (O/N)");

String nouv = sc.nextLine();

}while (nouv == 'O');

}

}

le prob c est que comme c est apres la boucle while est bas la variable cree n est pas dans la meme "boucle"

Comment faire ?

Zybang
Zybang
Niveau 3
29 février 2016 à 14:54:24

Du coup il indique un message d erreur sur le nouv qui est apres le while

Grimmys
Grimmys
Niveau 19
29 février 2016 à 15:14:24

Heu... Si j'ai bien compris ton truc, c'est un problème de portée des variables.

Ta variable nouv est local à un bloc plus interne que celui dont tu veux l'utiliser.

La solution : Déclarer nouv plus tôt dans ton code ( en gros, au niveau de l'ouverture de ton bloc le plus externe comprenant ta boucle while ).

Zybang
Zybang
Niveau 3
29 février 2016 à 15:20:24

oui mais du coup ca va la declarer deux fois ?

parce que apres je pose la question a l utilisateur

TintinMage
TintinMage
Niveau 10
29 février 2016 à 15:25:14

Code illisible, mets dans une balise <code> ou sur pastebin

Message édité le 29 février 2016 à 15:25:30 par TintinMage
Grimmys
Grimmys
Niveau 19
29 février 2016 à 15:27:59

Mais non, la deuxième déclaration tu l'as supprime ! :hap:

Une variable ne disparait que si tu fermes le bloc le plus interne dans lequel elle a été déclaré, en ouvrant un nouveau bloc à l'intérieur d'un bloc où elle a été déclarée, elle pourra fonctionner sans problème.

Tiens un exemple pour mieux comprendre :

{
{
char var_1 ;
{
var_1 = "Oui ! var_1 existe ! ";
}

}
var_1 = " Ah merde, var_1 n'existe pas, ceci va déclencher une erreur :/ " ;
}

Tu arrives à saisir ?
( désolé pour la présentation dégueulasse, je suis via mobile )

Grimmys
Grimmys
Niveau 19
29 février 2016 à 15:29:24

Ah oui présentation encore plus dégueulasse que je l'imaginais ; JVC supprime automatiquement les espaces classiques en début de lignes, excuse moi. :(

Zybang
Zybang
Niveau 3
29 février 2016 à 15:36:42

Oui j ai saisi

le prob c est que si je suprr la deuxieme qui est donc celle ci "nouv = sc.nextLine().charAt(0);" et bien le programme ne me demande plus d entrer quelque chose

Grimmys
Grimmys
Niveau 19
29 février 2016 à 15:44:39

Ah non mais t'as confondu déclaration et affectation : tu n'avais pas besoin de supprimer cette ligne, ça allait très bien.

Pour rappel :

char nouv // ça, c'est une déclaration

nouv = " Hello " // ça, c'est une affectation

char nouv = " Hello " // ça, c'est une déclaration avec initialisation ( = déclaration avec affectation )

Zybang
Zybang
Niveau 3
29 février 2016 à 15:48:17

Ahhhh ok merci j avais pas saisie alors

package project1;

import java.util.*;

public class sdz {

/**
* @param args
*/
public static void main(String[] args){

Scanner sc = new Scanner(System.in);

//Programme introduction
System.out.println("convertissuer de degrés Celsius en degrés Fahrenheit");
System.out.println("----------------------------------------------------");

char nouv;
do {
System.out.println("Choisissez le mode de conversion");
System.out.println("\n1- Convertisseur Celsius - Fahrenheit");
System.out.println("\n2- Convertisseur Fahrenheit - Celsius");

int converssion = sc.nextInt();

//Condition 1
int c = converssion;

if(c == 1)
{
System.out.println("Temperature à convertir : ");

double temperature = sc.nextDouble();

double resultat = temperature * 9 / 5 + 32;

System.out.println(temperature+ " °C correspond à : " +resultat+ " °F");
}

//Condition 2

if(c == 2)
{
System.out.println("Temperature à convertir : ");

double temperature1 = sc.nextDouble();

double resultat1 = (temperature1 - 32) * 5/9;

System.out.println(temperature1+ " °F correspond à : " +resultat1+ " °C");
}

System.out.println("\nSouhaitez vous convertir une autre température ? (O/N)");
nouv = sc.nextLine().charAt(0);

}while(nouv == 'O');

}

}

Par contre peut tu me dire qu est ce que je dois modifier ou suppr ?
Parce que y a aucun message d erreur sur la page

Mais quand je lance le rpogramme
ca affiche la derniere phrase et ce affiche 3 ligne en rouge (une erreur)

Bunyan
Bunyan
Niveau 17
29 février 2016 à 16:08:57

Comme le dit tintinmage : Merci d'utiliser la balise <code> (et je complète : ou de passer par un service tiers de mise en forme de code).

Zybang
Zybang
Niveau 3
29 février 2016 à 16:13:40
package project1;

import java.util.*;

public class sdz {

	/**
	 * @param args
	 */
	public static void main(String[] args){
		
	 Scanner sc = new Scanner(System.in);
	 
	 			
	//Programme introduction
	System.out.println("convertissuer de degrés Celsius en degrés Fahrenheit");
	System.out.println("----------------------------------------------------");
	
	char nouv;
	do {
	System.out.println("Choisissez le mode de conversion");
	System.out.println("\n1- Convertisseur Celsius - Fahrenheit");
	System.out.println("\n2- Convertisseur Fahrenheit - Celsius");
	
	int converssion = sc.nextInt();
	
	//Condition 1
	int c = converssion;
	
	if(c == 1)
	{
		System.out.println("Temperature à convertir : ");
		
		double temperature = sc.nextDouble();
		
		double resultat = temperature * 9 / 5 + 32;
		
		System.out.println(temperature+ " °C correspond à : " +resultat+ " °F");
	}
	
	//Condition 2
	
	if(c == 2)
	{
		System.out.println("Temperature à convertir : ");
		
		double temperature1 = sc.nextDouble();
		
		double resultat1 = (temperature1 - 32) * 5/9;
		
		System.out.println(temperature1+ " °F correspond à : " +resultat1+ " °C");
	}
	
	System.out.println("\nSouhaitez vous convertir une autre température ? (O/N)");
	nouv = sc.nextLine().charAt(0);
	
    }while(nouv  == 'O');
			
			
	
	
	
	

	}

	
}
Zybang
Zybang
Niveau 3
29 février 2016 à 16:14:11

Pour la question voir celui d au dessus

Zybang
Zybang
Niveau 3
29 février 2016 à 16:27:43

c est c est 3 ligne rouge qui apparaisse

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)
at project1.sdz.main(sdz.java:55)

TintinMage
TintinMage
Niveau 10
29 février 2016 à 16:42:41
nouv = sc.next().charAt(0);
Zybang
Zybang
Niveau 3
29 février 2016 à 17:25:35

[[sticker:p/1kkh]]Merci ca marche

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment