Corso Live Part-time Su Fondamenti Di Java › Forum › Java › Es 6 Lez 10
- Il topic è vuoto.
-
AutorePost
-
31 Gennaio 2022 alle 00:21 #5568Luca BrunettiOspite::
Gentile prof. Pagano
l’esercizio prevede:
Scrivi un programma Java che legge un anno dall’utente e stampa se quell’anno è un anno bisestile o meno. Un anno è bisestile se è divisibile per 400; altrimenti sono bisestili solo gli anni divisibili per 4 ma non per 100.Ho provato a scriverlo, ma non capisco dove è l’errore.
Sicuramente è un problema con le boolean, ma non so come correggerlo.riporto lo sviluppo:
package com;
import java.util.Scanner;public class esercizi {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println(“Inserisci il numero di un anno, e saprai se è bisestile o meno”);
int a = scan.nextInt();// variabili per calcolo anni bisestili
float x = 400;
float y = 4;float r=a%x; // riferimento ai secolari
float s=a%y; // riferimento ai bisestiliboolean c = true;
if(s==0) {}boolean d= true;
if(r==0) {}if ( c == d) {
System.out.println ( a + ” è un anno bisestile”);
}if ( c != d) {
System.out.println ( a + ” è un anno bisestile”);
}}}
Una cosa che aiuterebbe molto ma non ho trovato sarebbe avere una “funzione” che ti permette di stampare se è vero l’uno o l’altro, in questo modo sarebbe si accorciato l’ultimo passaggio.
attendo sue
cordiali saluti
Luca Brunetti31 Gennaio 2022 alle 12:28 #5569ANTONIO PAGANOOspite::Ciao, l’errore sulle variabili booleane è che, una volta create, non vengono mai usate.
Di seguito una possibile soluzione:public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("Inserisci il numero di un anno, e saprai se è bisestile o meno"); int a = scan.nextInt(); float r = a % 400; // riferimento ai secolari float s = a % 4; // riferimento ai bisestili float t = a % 100; boolean bisestile = false; if (r == 0) { // divisibile per 400 bisestile = true; } else { if (s == 0 && t != 0) {// divisibile per 4 ma non per 100 bisestile = true; } } if (bisestile) { System.out.println(a + " è un anno bisestile"); } else System.out.println(a + " NON è un anno bisestile"); }
-
AutorePost
- Devi essere connesso per rispondere a questo topic.