Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di koolk
    Registrato dal
    Sep 2007
    Messaggi
    89

    Errore strano durante esecuzione di un programma

    Ciao a tutti,
    sto studiando java e, nell'eseguire un programma che usa una classe e spiega l'uso dei metodi Get e Set, oltre che dei costruttori, e tutto sembrava funzionare, poi però durante l'esecuzione viene fuori un messaggio di errore e non riesco a risalire all'origine del problema.
    Posto qui il codice e il messaggio di errore

    codice:
    //Classe Gradebook
    //Questa classe è uguale alla precedente Gradebook. E' stata
    //riscritta per testare l'apprendimento
    
    public class Gradebook
    {
    	//Variabile private per l'uso esclusivo all'interno della classe
    	private String courseName;
    	
    	//Inizializziamo il costruttore della classe	
    	public Gradebook(String name)
    	{
    		courseName = name;
    	}
    	
    	//Metodo Get per restituire al chiamante il nome del corso
    	public String getMessage()
    	{
    		return courseName;
    	}
    	
    	//Metodo Set per impostare il nome del corso ricevuto dal chiamante
    	public void setMessage(String name)
    	{
    		courseName = name;
    	}
    	
    	//Metodo per visualizzare a video il messaggio relativo
    	//al corso a cui si vuole partecipare
    	public void displayMessage()
    	{
    		System.out.printf("Welcome to the % course", getMessage());
    	}
    }
    codice:
    //Classe Gradeboktest
    //Questa classe è uguale alla precedente Gradebooktest. E' stata
    //riscritta per testare l'apprendimento
    
    import java.util.Scanner;
    
    public class Gradebooktest
    {
    	public static void main(String args[])
    	{
    		//Dichiariamo le variabili e le classi con tanto di inizializzazione
    		
    		Scanner input = new Scanner(System.in);
    		Gradebook myGradebook = new Gradebook("CS 101");
    		String nameOfCourse;
    		
    		//Restituiamo a video il nome iniziale del corso
    		System.out.printf("The initial course name is set to: %s\n\n", myGradebook.getMessage());
    		
    		//Prendiamo in input il nome del corso che passeremo alla classe
    		//Gradebook tramite il metodo Set
    		System.out.print("Enter the name of the course you want to join: ");
    		nameOfCourse = input.nextLine();
    		myGradebook.setMessage(nameOfCourse);
    		myGradebook.displayMessage();
    	}
    }
    Questo è il messaggio di errore:

    C:\java\Gradebook>javac *.java

    C:\java\Gradebook>java Gradebooktest
    The initial course name is set to: CS 101

    Enter the name of the course you want to join: 102
    Exception in thread "main" java.util.FormatFlagsConversionMismatchException: Con
    version = c, Flags =
    at java.util.Formatter$FormatSpecifier.failMismatch(U nknown Source)
    at java.util.Formatter$FormatSpecifier.checkBadFlags( Unknown Source)
    at java.util.Formatter$FormatSpecifier.checkCharacter (Unknown Source)
    at java.util.Formatter$FormatSpecifier.<init>(Unknown Source)
    at java.util.Formatter.parse(Unknown Source)
    at java.util.Formatter.format(Unknown Source)
    at java.io.PrintStream.format(Unknown Source)
    at java.io.PrintStream.printf(Unknown Source)
    at Gradebook.displayMessage(Gradebook.java:32)
    at Gradebooktest.main(Gradebooktest.java:25)

    Un grazie anticipato a tutti
    Kool K

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    L'errore è qui, nel metodo "displayMessage()" della classe Gradebook:

    codice:
    System.out.printf("Welcome to the % course", getMessage());
    Dopo il simbolo di percentuale ci va il formato... che in questo caso non hai messo. Dovrebbe essere "%s".


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di koolk
    Registrato dal
    Sep 2007
    Messaggi
    89
    Difatti l'avevo appena notato anch'io mentre in bagn...ehm, in riunione di lavoro con il capo mi ricontrollavo il codice.
    Purtroppo però nonostante la correzione su una macchina virtuale con openSuse mi ha dato lo stesso problema...vabbè forse andavo di fretta e ho scritto male...

    Thx anyway
    Kool K

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.