Gå til innhold

Statement for å gå tilbake til begynnelsen


Anbefalte innlegg

Holder på med ganske enkel programmering. Ønsker å ha en statement nederst i programmet som gjør at programmer går tilbake til en ønskelig plass. Har søkt litt på goto, men finner ikke ut om det er det rette. Jeg vil helst unngå å lage en uendelig løkke, da det blir mer kode enn nødvending (håper jeg).

 

int tall = 1;

 

start:

 

if (tall = 1) {

    printer ut tall er 1

} else {

    printer ut tall er ikke 1

}

 

goto start;

 

EDIT: Lurer også på om det er en statement for å stoppe programmet.

Endret av oya
Lenke til kommentar
Videoannonse
Annonse

Du har jo while/do-while-løkker for dette. Og du kan komme ut av løkkene ved hjelp av break...

Men hva er det du egentlig vil programmet skal gjøre?

 

Du sier du ikke vil ha en evig løkke, men det er jo akkurat det du har laget selv...

 

while (tall == 1) {
System.out.println("Tall er 1");
}

 

Eksempel på do-while:

do {
System.out.println("Skriv inn riktig tall for én gangs skyld!");
tall = innFraTastaturet.nextInt();
}while(!tall);

Endret av drange
Lenke til kommentar
Du har jo while/do-while-løkker for dette. Og du kan komme ut av løkkene ved hjelp av break...

Men hva er det du egentlig vil programmet skal gjøre?

 

Du sier du ikke vil ha en evig løkke, men det er jo akkurat det du har laget selv...

 

while (tall == 1) {
System.out.println("Tall er 1");
}

 

Eksempel på do-while:

do {
System.out.println("Skriv inn riktig tall for én gangs skyld!");
tall = innFraTastaturet.nextInt();
}while(!tall);

6872273[/snapback]

Joda, er jo klar over at jeg kan gjøre dette med while-løkker. Det jeg lurer på er om det er mulig med en statement som går til en annen plass i koden. Det eksempelet jeg laget var bare for å illustrere hvordan jeg så det for meg. Du kan godt bytte ut if-løkken med en hvilken som helst kode. Poenget er at jeg leter etter en enklere måte å gå til et gitt punkt i koden, uten å bruke while-løkke (det er enkelt, men det blir så mye rot {}{}{}{})

Lenke til kommentar

En litt annen ting, hvis det er greit for trådstarter da..

 

Hvordan kan jeg skrive til et array?

 

String[][] Eier = new String[10][10];
       double[][] Brukt = new double[10][10];

 	skjerm.outln("Velg plass (O(x,y)):");
 	int radnr = tast.inInt("O(,");
 	int kolnr = tast.inInt(",)");
 	
 	
 	if ((radnr > 10) && (kolnr > 10)) {
   skjerm.outln("Du valgte F(" + radnr + "," + kolnr + ")");
 	}
 	else {
   skjerm.out("Ikke gyldig plass");
 	}

 

Skal ha den til å legge inn et navn i eier og (x,y) verdi i double.. kan nok bruk en "for" kommando. Men sliter litt med å finne ut hvordan.

Lenke til kommentar

Oya, hvis du har tenkt å programmere mer java, så er følgendes livsviktig å forstå : "Goto er roten til alt vondt". Jeg ser du prøver å knote til kode hvor du vil hoppe vilkårlig rundt, og det er feil, feil, feil. Beklager min litt ufine måte å formulere meg på, men du er nødt å radikalt endre din tankegang når det gjelder implementasjon av algoritmer i et objekt orientert språk. Senere kommer du til å slite hvis du ikke kommer inn i OOP tankegangen allerede fra starten av.

 

Så, hva er det du skal programmere? Hva er ditt endelige mål, som jeg antar denne kodesnutten er en del av?

Lenke til kommentar
Du må ha to nøstede for-løkker:

for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[0].length; j++) {
array[i][j] = tallet;
}
}

Med forbehold om feil...

6879416[/snapback]

 

skjerm.outln("** Kj0p et utvinningsfelt **");  	
 	skjerm.outln("Velg plass (F(x,y)):");

 	
 	
for (int i = 0; i < feltEier.length; i++) {
for (int j = 0; j < feltEier[0].length; j++) {
 	int i = tast.inInt("F(,");
 	int j = tast.inInt(",)");
}
}

 

skjønte ikke helt hva du mente..

Lenke til kommentar

Du spør om hvordan man kan skrive til et array, og det er jo ikke vanskeligere enn å skrive til noe hvilket som helst annet, men du demonstrerer med to-dimensjonale array.

 

Et vanlig array skriver man jo bare til slik:

arrayNavn[0] = 3;

arrayNavn[1] = 64;

arrayNavn[2] = 42;

arrayNavn[3] = 666;

 

Det samme gjelder todimensjonale, men da må du skrive til ganske mange flere felt:

toDimensjonal[0][0] = 4;

toDimensjonal[0][1] = 1;

toDimensjonal[1][o] = 0;

toDimensjonal[1][1] = 7;

 

Men hva vil du?

Lenke til kommentar

Jeg har en oppgave der jeg skal kunne "selge" oljefelt.. Det skal legges inn et navn til hvert [ i ][ j ] område.

 

Man skal kunne velge et område ved å skrive fra tastaturet, og hvis det ikke er opptatt skal det legges inn i det valgte området.

 

String[][] feltEier = new String[15][25];
double[][] utvunnet = new double[15][25];

skjerm.outln("** Kj0p et utvinningsfelt **");  	
skjerm.outln("Velg plass (F(x,y)):");    	

for (int i = 0; i < feltEier.length; i++) {
for (int j = 0; j < feltEier[0].length; j++) {
int i = tast.inInt("F(,");
int j = tast.inInt(",)");
}
}

 

Skjønner du hva jeg skal fram til?

Lenke til kommentar

Ja, da skal du jo skrive inn X og Y for hånd, antar jeg, og da bruker du bare noe ala dette:

Scanner input = new Scanner(System.in);

//Velger X-koordinat

x = input.nextInt();

//Velger Y-koordinat

y = input.nextInt();

 

if (!array[x][y]) {

//Velger navn

array[x][y] = input.next();

}

else {

System.out.println("OPPTATT!!!");

}

 

Disclaimer: Vet ikke om (array[x][y]) er true hvis det finnes noe i den og false hvis den er en null-peker, men det finner du nok kjapt ut av...

Lenke til kommentar
Jeg har en oppgave der jeg skal kunne "selge" oljefelt.. Det skal legges inn et navn til hvert [ i ][ j ] område.

 

Man skal kunne velge et område ved å skrive fra tastaturet, og hvis det ikke er opptatt skal det legges inn i det valgte området.

 

String[][] feltEier = new String[15][25];
double[][] utvunnet = new double[15][25];

skjerm.outln("** Kj0p et utvinningsfelt **");  	
skjerm.outln("Velg plass (F(x,y)):");    	

for (int i = 0; i < feltEier.length; i++) {
for (int j = 0; j < feltEier[0].length; j++) {
int i = tast.inInt("F(,");
int j = tast.inInt(",)");
}
}

 

Skjønner du hva jeg skal fram til?

6883125[/snapback]

easyIO du bruker. Tror ikke du trenger å bruke den for-løkka. Brukeren skal skrive inn eksempelsvic F(2,2).

 

int i = tast.inInt("F(,");

int j = tast.inInt(",)");

tast = new In();

 

new In() gjør at tast blir "resetet". Fant ut at det er lurt å gjøre det etter hver gang man har brukt tast. Hvis ikke kan det bli mye tull når man skal bruke samme tast senere i programmet. Det jeg derimot kunne tenke meg å få til, er at man kan skrive inn liten F ( f(2,2). Har ikke prøvd så mye på dette, skulle tro man kan bruke upper/lower-case en plass. Noen tips?

Lenke til kommentar

Du kan vel bruke disse konverterings kodene.

 

toUpperCase(); og toLowerCase();

 

Men det jeg lurte på er at når jeg skriver

 


skjerm.outln("Velg plass F(x,y):");
int radnr = tast.inInt("F(,");
       int kolnr = tast.inInt(",)");
tast = new In();
 	
skjerm.outln("Du valgte F(" + radnr + "," + kolnr + ")");
       skjerm.outln("Velg hvem plassen skal selges til");
feltEier[radnr][kolnr] = tast.inLine();
skjerm.outln("Du valgte F(" + radnr + "," + kolnr + ") og plassen ble solgt til " + feltEier[radnr][kolnr]);

 

Så fungerer koden helt perfekt. Men etter jeg har taster F(x,y) så kommer det forventet et heltall. prøv igjen:

men programt fortsetter.. Og du får lagt inn navnet osv..

Endret av NeXz
Lenke til kommentar
Du kan vel bruke disse konverterings kodene.

 

toUpperCase(); og toLowerCase();

 

Men det jeg lurte på er at når jeg skriver

 


skjerm.outln("Velg plass F(x,y):");
int radnr = tast.inInt("F(,");
       int kolnr = tast.inInt(",)");
tast = new In();
 	
skjerm.outln("Du valgte F(" + radnr + "," + kolnr + ")");
       skjerm.outln("Velg hvem plassen skal selges til");
feltEier[radnr][kolnr] = tast.inLine();
skjerm.outln("Du valgte F(" + radnr + "," + kolnr + ") og plassen ble solgt til " + feltEier[radnr][kolnr]);

 

Så fungerer koden helt perfekt. Men etter jeg har taster F(x,y) så kommer det forventet et heltall. prøv igjen:

men programt fortsetter.. Og du får lagt inn navnet osv..

6894731[/snapback]

 

Du kan vel bruke disse konverterings kodene.

 

toUpperCase(); og toLowerCase();

 

Men det jeg lurte på er at når jeg skriver

 


skjerm.outln("Velg plass F(x,y):");
int radnr = tast.inInt("F(,");
       int kolnr = tast.inInt(",)");
tast = new In();
 	
skjerm.outln("Du valgte F(" + radnr + "," + kolnr + ")");
       skjerm.outln("Velg hvem plassen skal selges til");
feltEier[radnr][kolnr] = tast.inLine();
skjerm.outln("Du valgte F(" + radnr + "," + kolnr + ") og plassen ble solgt til " + feltEier[radnr][kolnr]);

 

Så fungerer koden helt perfekt. Men etter jeg har taster F(x,y) så kommer det forventet et heltall. prøv igjen:

men programt fortsetter.. Og du får lagt inn navnet osv..

6894731[/snapback]

Fungerer fint hos meg med denne koden:

 

 

// Registrering av oljefelt

skjerm.out("Oppgi feltet som ønskes kjøpt: ");

int radnr = tastatur.inInt(" /nFf(,");

int kolnr = tastatur.inInt(",)");

tastatur = new In();

Det kan hende at det ligger noe i tastatur før du kjører koden.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...