Permalänk

Skapa ett javaprogram.

Hej, jag har fått en läxa i skolan att jag ska göra ett program.
Man ska skriva ett nummer mellan 1-50, sedan ska programmet skriva ut alla siffrorna mellan 1-50 förutom just det som man har valt att skriva in.
Jag fastnade på den delen där man ska få det tal man valt att skriva in att "försvinna" ut ifrån alla andra tal.
Jag har kommit såhär långt.(Är inte så bra på detta med java ännu.)
Rätta mig även om jag har skrivit fel eller kan göra det bättre på något sätt.

package javaapplication1;

public class Fråga4 {

public static void main(String[] args) {
System.out.println("Mata in ett tal mellan 1-50");
String s = Keyboard.readString();

for (int n = 1; n <= 50; n=n+1)
System.out.print(n + " ");
}

}

Tack på förhand.

Permalänk
Medlem

Lägg till en if-sats i for-loopen som kollar om varje tal inte är lika med talet som matades in. Inne i if-satsen kan du då ha System.out.print.

Permalänk
Skrivet av Flostyle:

Lägg till en if-sats i for-loopen som kollar om varje tal inte är lika med talet som matades in. Inne i if-satsen kan du då ha System.out.print.

Jag fattar inte riktigt vad man ska skriva in för att göra så programmet kollar om talet redan finns med.
Skulle vara snällt om du kunde beskriva lita ordentligare för mig.

Permalänk
Medlem
Skrivet av Sturebaws:

Jag fattar inte riktigt vad man ska skriva in för att göra så programmet kollar om talet redan finns med.
Skulle vara snällt om du kunde beskriva lita ordentligare för mig.

det går inte riktigt att förklara mer, om vi inte ska göra din läxa.

Ledtråden är dock att du ska använd en IF sats i din loop. hur man använder det måste du lösa själv.

Visa signatur

Citera mig för svar :D
- Årets Citat: Vattenulf -
"Pumpen snurrar inte den står stilla i botten på chassit. Om den hade snurrat skulle slangarna blivit vridna så det vill man ju inte."

Permalänk
Medlem
Skrivet av Sturebaws:

Jag fattar inte riktigt vad man ska skriva in för att göra så programmet kollar om talet redan finns med.
Skulle vara snällt om du kunde beskriva lita ordentligare för mig.

för (varje tal upp till 50) { om (talet inte är lika med <det som matades in>) { skriv ut talet } }

Permalänk
Medlem

Jag är inte heller bra på just java men kan nog ändå ge lite ledtrådar. Det brukar finnas villkorssatser i de flesta programmeringsspråk. Det borde också gå att omvandla den inlästa texten till ett heltal. Använd gärna code-taggar när du postar källkod, blir lättare att läsa då. Indentering är också bra för att lättare läsa programmet.

Förresten, är det OK att ha bokstaven å i klassnamnet i java? Skall main() ligga inuti klassen? Är som sagt var dålig på java men har för mig att class är som en beskrivning av en objekt-typ som man sedan kan använda i exempelvis funktionen main() för att skapa sådana objekt. I och för sig tror jag det är OK att definiera funktioner (eller metoder) inuti en klass men main gissar jag är reserverat för var programmet ska starta någonstans.

Permalänk
Skrivet av Sturebaws:

Jag fattar inte riktigt vad man ska skriva in för att göra så programmet kollar om talet redan finns med.
Skulle vara snällt om du kunde beskriva lita ordentligare för mig.

en if-sats är
if(stoppa in ett vilkor här){
Stoppa in din print här
}

Skrivet av ronnylov:

Jag är inte heller bra på just java men kan nog ändå ge lite ledtrådar. Det brukar finnas villkorssatser i de flesta programmeringsspråk. Det borde också gå att omvandla den inlästa texten till ett heltal. Använd gärna code-taggar när du postar källkod, blir lättare att läsa då. Indentering är också bra för att lättare läsa programmet.

Förresten, är det OK att ha bokstaven å i klassnamnet i java? Skall main() ligga inuti klassen? Är som sagt var dålig på java men har för mig att class är som en beskrivning av en objekt-typ som man sedan kan använda i exempelvis funktionen main() för att skapa sådana objekt. I och för sig tror jag det är OK att definiera funktioner (eller metoder) inuti en klass men main gissar jag är reserverat för var programmet ska starta någonstans.

main() ska ligga inne i klassen, så det är inget fel. Dock ska det bara finnas en gång i din huvudklass du startar programmet från. Eventuella andra klasser ska inte ha main().

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

Du använder den inmatade string:en, se till att omvandla till en integer så du kan göra en korrekt jämförelse. När man lär sig programmera är google och stack overflow dina kompisar. Sök något i stil med "compare string and int".

Visa signatur

Stationär: ASUS X470 Strix-F / Ryzen 5800X / 16GB 3600MHz Corsair Venegance LP / PNY 4070 Ti / Samsung 980 2TB / Cooler Master V700 / Fractal Design Define S2

Permalänk
Medlem
Skrivet av ronnylov:

Förresten, är det OK att ha bokstaven å i klassnamnet i java? Skall main() ligga inuti klassen? Är som sagt var dålig på java men har för mig att class är som en beskrivning av en objekt-typ som man sedan kan använda i exempelvis funktionen main() för att skapa sådana objekt. I och för sig tror jag det är OK att definiera funktioner (eller metoder) inuti en klass men main gissar jag är reserverat för var programmet ska starta någonstans.

Det är bättre ur ett läsbarhetsperspektiv att bara använda engelska när man programmerar. Man vill ju att koden ska vara så lättförståelig som möjligt. Main ligger inuti klassen, ja. Men om du ska kombinera flera klasser med varandra är det inte säkert att varje klass har en egen main.

Visa signatur

Stationär: ASUS X470 Strix-F / Ryzen 5800X / 16GB 3600MHz Corsair Venegance LP / PNY 4070 Ti / Samsung 980 2TB / Cooler Master V700 / Fractal Design Define S2

Permalänk
Medlem

Nu skrev jag bara koden lite snabbt men har för mig att man kan läsa en int rakt in om man använder sig av try catch satser.

try{ int number = System.in.read(); for (int n = 1; n <= 50; n=n+1){ if(number != n){ System.out.print(n + " "); } } }catch(IOException e){ System.out.println("ERROR!"); }

Har inte testat det, alternativt behöver man konvertera en string till en int via stringstreamconverter.

Visa signatur

Wiiiiiiiiiiii

Permalänk
Medlem

String s = JOptionPane.showInputDialog("Mata in ett tal mellan 1-50"); for (int n = 1; n <= 50; n++) { if (n != Integer.parseInt(s)) { System.out.print(n + " "); }

Permalänk
Medlem

public void hej(int n){ for(int i = 1; i <= 50; i++){ if(i != n){ System.out.print(i + " "); } } }

Visa signatur

Citera så att jag hittar tillbaka! AMD Ryzen 7 5800X3D | MSI B450 Tomahawk Max | 32GB Ballistix @ 3733/16 | Aorus Xtreme WB 3080 | Samsung 970 EVO Plus | Corsair HX1000i | Windows 10