Programmering(har vissa problem med en uppgift)

Permalänk
Medlem

Programmering(har vissa problem med en uppgift)

Hej, har försökt programmera en uppgift där jag ska skriva ett program som läser in ett datum under innevarande år och skriver ut om datumet är korrekt eller inte. T.ex. månadsnummer 11 har jag och sen ska jag skriva in ett dagnummer i månaden, vi säger 5.
Har försökt komma fram till en lösning, men vet att jag inte har rätt. Kan någon snälla hjälpa mig?

package javaapplication4;

import java.util.Scanner;

public class JavaApplication4 {

public static void main(String[] args) {
Scanner Scanner = new Scanner(System.in);
System.out.println("11");
int tal= Scanner.nextInt(11);
if(summa==6){System.out.printIn("summa är sex");
int summa = 5;
if(summa>3) {
if(summa>5) {
summa=6;
}
}

System.out.println(5);

Tack på förhand
/G

Permalänk
Medlem

Får du error?

Placera koden innanför CODE taggar så blir det lättare att se.

Vad ska du göra med

int tal = Scanner.nextInt(11);

?

Visa signatur

Citera för svar

Permalänk
Medlem

Alltså jag får error för if(summa==6){System.out.printIn("summa är sex");

Det där med int tal = Scanner.nextInt(11);
Trodde man behövde skriva det i samband med scannern, eller så har jag missuppfattat. Förstår inte riktigt hur jag inför själva månaden, och sen ett datum i månaden, det har blivit helt rörigt för mig nu. :/

Permalänk
Skrivet av Gazzolo:

Alltså jag får error för if(summa==6){System.out.printIn("summa är sex");

Det där med int tal = Scanner.nextInt(11);
Trodde man behövde skriva det i samband med scannern, eller så har jag missuppfattat. Förstår inte riktigt hur jag inför själva månaden, och sen ett datum i månaden, det har blivit helt rörigt för mig nu. :/

Måste du inte skapa summa innan du testar om den har ett specifikt värde?

Visa signatur

Corsair Vengeance LPX 4x8GB DDR4 2666MHz CL16 | Intel Core i7 6700 3,4 GHz 8MB | MSI Z170A KRAIT GAMING | Corsair Force Series 3 120 GB | Seagate SSHD Desktop 2 TB 7200 RPM 3,5" | Creative Sound Blaster Z PCIe | Western Digital 500 GB | Samsung Writemaster | Corsair TX750 V2 750 W | EVGA GeForce GTX 970 4GB SSC ACX 2.0+| Fractal Design Define R5 (Svart)

Permalänk
Medlem
Skrivet av Gazzolo:

Hej, har försökt programmera en uppgift där jag ska skriva ett program som läser in ett datum under innevarande år och skriver ut om datumet är korrekt eller inte. T.ex. månadsnummer 11 har jag och sen ska jag skriva in ett dagnummer i månaden, vi säger 5.
Har försökt komma fram till en lösning, men vet att jag inte har rätt. Kan någon snälla hjälpa mig?

package javaapplication4;

import java.util.Scanner;

public class JavaApplication4 {

public static void main(String[] args) {
Scanner Scanner = new Scanner(System.in);
System.out.println("11");
int tal= Scanner.nextInt(11);
if(summa==6){System.out.printIn("summa är sex");
int summa = 5;
if(summa>3) {
if(summa>5) {
summa=6;
}
}

System.out.println(5);

Tack på förhand
/G

Jag kan se flertalet fel i koden.

Först och främst bör du inte döpa ditt Scannerobjekt till klassnamnet, kalla den snarare scan, eller något annat.
När det gäller inläsning från Scanner skulle jag rekommendera att först spara detta i en sträng och sedan parsa den genom att anropa
String s =scan.nexLine() då får du en strängrepresentation av det som matats in i textfältet.
För att sedan få ut en integer finns det ett anrop parseInt i klassen Integer du bör använda.

Till sist gäller din if-sats så är summa inte deklarerad förrän efter if-satsen, denna måste deklareras innan.

Utöver detta förstår jag inte koden helt men börja fundera på dessa ändringarna och kika sedan mer på hur algoritmen faktiskt skall gå till

Permalänk
Medlem

Du får error för att

int summa;

ligger efter

if(summa==6)

Visa signatur

Citera för svar

Permalänk
Medlem

Ok, tack för tipsen. Jag visade er en ganska otydlig kod, men ska försöka formulera på ett bättre sätt.

package javaapplication4;

import java.util.Scanner;

public class JavaApplication4 {

public static void main(String[] args) {
Scanner Hey = new Scanner(System.in);
System.out.println();
int tal= Scanner.nextInt();
Nu ska jag införa en månad och en dag i månaden. Men då måste jag skriva in alla månader och hur många dagar alla månader har för att sedan kunna få ett korrekt svar. T.ex.

int a= 11
if(4, 6, 9, 11)
fyra månader som har 30 dagar
1 månad (februari) som har 28 dagar
sen 7 månader som har 31 dagar.
vet inte om jag tänker rätt nu, måste också införa dagen i månaden november, men måste jag göra det efter if, eller direkt efter jag skrev int a= 11?

Tacksam för svar, sorry om allt låter krångligt, försöker bara lösa en enkel uppgift som jag förstorat.

Permalänk
Medlem
Skrivet av Gazzolo:

Ok, tack för tipsen. Jag visade er en ganska otydlig kod, men ska försöka formulera på ett bättre sätt.

package javaapplication4;

import java.util.Scanner;

public class JavaApplication4 {

public static void main(String[] args) {
Scanner Hey = new Scanner(System.in);
System.out.println();
int tal= Scanner.nextInt();
Nu ska jag införa en månad och en dag i månaden. Men då måste jag skriva in alla månader och hur många dagar alla månader har för att sedan kunna få ett korrekt svar. T.ex.

int a= 11
if(4, 6, 9, 11)
fyra månader som har 30 dagar
1 månad (februari) som har 28 dagar
sen 7 månader som har 31 dagar.
vet inte om jag tänker rätt nu, måste också införa dagen i månaden november, men måste jag göra det efter if, eller direkt efter jag skrev int a= 11?

Tacksam för svar, sorry om allt låter krångligt, försöker bara lösa en enkel uppgift som jag förstorat.

Det är inte så att sjävla skoluppgiften går ut på att korrigera koden? Ser konstruerat ut.

Visa signatur

Kom-pa-TI-bilitet