Avatar billede tjmm Nybegynder
20. februar 2005 - 16:31 Der er 16 kommentarer og
1 løsning

En if og while sætning?

Nogle der kan give en lille if og whilesætning som kører sammen, det skal ikke lave noget præcist.. bare et eller andet.. Skal selvf køres som JApplet.

skriv
Avatar billede kalp Novice
20. februar 2005 - 16:35 #1
int a = 0;
int b = 20;
while(a != b)
{
a++;
if(a < b)
b--;
}

lorte eksempel. hehe
Avatar billede kalp Novice
20. februar 2005 - 16:36 #2
eller

int a = 0;

if(a = 0)
{
while(et eller andet)
{
kode
}


}
Avatar billede kalp Novice
20. februar 2005 - 16:40 #3
til nummer 2.. manglede lige et = tegn

int a = 0;

if(a == 0)
{
while(et eller andet)
{
kode
}

}
Avatar billede tjmm Nybegynder
20. februar 2005 - 16:45 #4
Der må gerne være lidt kode sådan den fx tegner en firkant og farver et elller andet..så er det fint og i skal have mange tak :)
Avatar billede arne_v Ekspert
20. februar 2005 - 16:49 #5
import java.awt.event.*;
import java.util.*;

import javax.swing.*;

public class TestApplet extends JApplet implements ActionListener {
    private Random rng = new Random();

    private int target;

    private JButton btn;

    public void init() {
        target = rng.nextInt(10);
        getContentPane().add(new JLabel("Gæt et tal 0-9"));
        btn = new JButton("Start på at gætte");
        btn.addActionListener(this);
        getContentPane().add(btn);
    }

    public void actionPerformed(ActionEvent e) {
        boolean guessed = false;
        while (!guessed) {
            int guess = Integer.parseInt(JOptionPane.showInputDialog(null, "Tal:"));
            if (guess == target) {
                JOptionPane.showMessageDialog(null, "Rigtigt");
                guessed = true;
            } else {
                JOptionPane.showMessageDialog(null, "Forkert");
            }
        }
    }
}
Avatar billede tjmm Nybegynder
20. februar 2005 - 16:52 #6
Okay, vil du så lige forklare hurtigt hvad du har gjort, eller hvad den gør, i grove træk
Avatar billede tjmm Nybegynder
20. februar 2005 - 16:55 #7
altså hvad de forskellige funktioner gør :P
Avatar billede arne_v Ekspert
20. februar 2005 - 16:57 #8
Den laver et tilfældigt tal 0-9 og så skal brugeren gætte det.

Prøv og køre den. Så skulle logikken gerne være nem at se.
Avatar billede tjmm Nybegynder
20. februar 2005 - 17:01 #9
getcontenpane hvad er det? Og hvad gør if og while sætningen..svar på det og du har fuldt fortjent dig pointene
Avatar billede kalp Novice
20. februar 2005 - 17:01 #10
sorry tjmm... troede du mente meget simpelt:)
Avatar billede arne_v Ekspert
20. februar 2005 - 17:05 #11
JFrame og JApplet adder man ikke direkte til - man adder til deres content pane.
Der er ikke meget logik i det. Sådan er det bare.

if sætningen tester på om man har gættet det rigtige tal

while løkken kører indholdet indtil man har gættet det rigtige tal

(while løkken kører indtil if sætningen sætter guessed = true)
Avatar billede arne_v Ekspert
20. februar 2005 - 17:05 #12
og et svar
Avatar billede tjmm Nybegynder
20. februar 2005 - 17:12 #13
Hehe er ny programmør, 1 semester.. :D Måske skulle jeg springe fra:D

men den viser ikke rigtig at man skal gætte et tal fra 0-9

int guess = Integer.parseInt(JOptionPane.showInputDialog(null, "Tal:"));
public void actionPerformed(ActionEvent e)

  target = rng.nextInt(10);
        getContentPane().add(new JLabel("Gæt et tal 0-9"));
        btn = new JButton("Start på at gætte");
        btn.addActionListener(this);
        getContentPane().add(btn);

de dersens ting jeg har pastet fatter jeg heller ikk så meget af.. lille forklaring?
Avatar billede arne_v Ekspert
20. februar 2005 - 17:18 #14
int guess = Integer.parseInt(JOptionPane.showInputDialog(null, "Tal:"));

indlæser tal fra brugeren

target = rng.nextInt(10);

trækker et tilfældigt tal 0-9 som er det man skal gætte

getContentPane().add(new JLabel("Gæt et tal 0-9"));

laver en label med at man skal gætte

        btn = new JButton("Start på at gætte");
        btn.addActionListener(this);
        getContentPane().add(btn);

laver en button som starter gætte processen
Avatar billede mikkelbm Nybegynder
20. februar 2005 - 18:23 #15
Blot en lille bemærkning omkring getContentPane():

Citat: "Lastly, after seven years, we've made jFrame.add equivalent to jFrame.getContentPane().add()."

Kilde:

http://java.sun.com/j2se/1.5.0/docs/relnotes/features.html#swing


:)
Avatar billede mikkelbm Nybegynder
20. februar 2005 - 18:25 #16
Men det kræver selvfølgelig Java 1.5 :)
Avatar billede arne_v Ekspert
20. februar 2005 - 18:34 #17
Gammel vane - 1.5 add kalder iøvrigt bare getContentPane().add ...

Umiddelbart tror jeg at den manglende layout manager er værre.

import java.awt.*;
import java.awt.event.*;
import java.util.*;

import javax.swing.*;

public class TestApplet extends JApplet implements ActionListener {
    private Random rng = new Random();

    private int target;

    private JButton btn;

    public void init() {
        getContentPane().setLayout(new BorderLayout());
        target = rng.nextInt(10);
        getContentPane().add(new JLabel("Gæt et tal 0-9"), BorderLayout.NORTH);
        btn = new JButton("Start på at gætte");
        btn.addActionListener(this);
        getContentPane().add(btn, BorderLayout.CENTER);
    }

    public void actionPerformed(ActionEvent e) {
        boolean guessed = false;
        while (!guessed) {
            int guess = Integer.parseInt(JOptionPane.showInputDialog(null, "Tal:"));
            if (guess == target) {
                JOptionPane.showMessageDialog(null, "Rigtigt");
                guessed = true;
            } else {
                JOptionPane.showMessageDialog(null, "Forkert");
            }
        }
    }
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester