Twee methodes vervangen voor één d.m.v. parameter

Status
Niet open voor verdere reacties.

basschmidt

Gebruiker
Lid geworden
31 mei 2010
Berichten
15
Hoi allemaal,

Ik heb een programma dat goed werkt.
in de console vraagt het programma om een cijfer in te toetsen,
deze print hij dan uit in aantal uitroeptekens (nummer = 5 dan 5 uitroeptekens)
hierna doet het programma hetzelfde maar dan met komma's (opnieuw een getal invullen).
Ik wil dit graag doen met behulp van één methode die afhangt van een parameter. Ik heb geen idee hoe ik dit moet aanpakken. Moet ik dan als parameter de inputvariabele gebruiken??

Ik heb de twee methodes hieronder staan:

Code:
package RepeatCharacter2;

import java.io.PrintStream;
import java.util.Scanner;

class RepeatCharacter2 {
	
	// Naam programmeur
	static final String NAAM = "Bas Schmidt";
	
	// Assignment : RepeatCharacter1
	// Date : 14/11/2011
		
	PrintStream out;
	
	RepeatCharacter2() {
	out = new PrintStream(System.out);
	}
	
	// Uitroepteken methode
	public String exclamationMark()
	{
		String exclamationMark = ("!");
		
		return exclamationMark;
	}
	
	// Komma methode
	public String comma()
	{
		String comma = (",");
		
		return comma;
	}
	
	void start() {
		
		Scanner in = new Scanner(System.in);
		
		out.printf("Please type in a number: ");
		
		int i;
		int inputNumber = in.nextInt();
		
		for (i = 0; i < inputNumber; i++)
		{
			out.printf(exclamationMark());
		}
		
		out.printf("\nPlease type in another number: ");
		
		int j;
		int inputNumber2 = in.nextInt();
		
		for (j = 0; j < inputNumber2; j++)
		{
			out.printf(comma());
		}

	}
	
	public static void main(String[] argv) {
		
		new RepeatCharacter2().start();
	
	}
}
 
uit de losse pols en wat copy paste werk van jou code:

tip: als je een for (i ....) loop maakt, hoeft je niet appart de integer te declareren zoals jij doet. voldoende is: for (int i=0;i < 5;i++) { } je doet namelijk de declaratie in de for loop zelf
tip2: als he een methode hebt : public String exclamationMark() dan is het voldoende om als returnwaarde : return "!"; neer te zetten. is erg dubbelop wat je daar doet. Verder is de methode niet echt handig
[cpp]

public class SomeClass
{

static void main (String[] args){
new Main();
}

public SomeClass(){

Scanner in = new Scanner(System.in);
PrintStream out = new PrintStream(System.out);
out.printf("Please type in a number: ");


String result = "";
while (result != "exit"){

//geen idee of het in.Read() is. lees gewoon het resultaat dat uit de gebruiker heeft getyped..
result = in.Read();

// todo. check of je hem wel naar int kan casten...
int times = (int) result;

out.printf("Please type in a sign to print out: ");
String valueToPrint = in.Read();

for (int i=0; i < times; i++){
out.printf(valueToPrint);
}

}
}
}

[/cpp]

zoiets ?
 
Laatst bewerkt:
Hey

Ik snap niet echt helemaal wat je bedoeld,
als ik int i weg haal, geeft ie een error dat mijn i niet gedefinieerd is?

Het inlezen van de input moet ik zo aanhouden van mijn school :(.
Ook dat ik niet in main programmeer maar in void start.

mijn programma moet eerst om een getal vragen in de console, dat wordt dan in aantal ! uitgeprint en daarna vraagt hij weer naar een getal en vervolgens print hij die uit in komma's. Dit is de gewenste output:


[CPP]Please type in a number: 45
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Please type in another number: 56
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,[/CPP]


groetjes,
Bas
 
jij zegt het volgende:

[cpp]
int i;
for (i =0; i < 5;i++ {}
[/cpp]

maar wat gebruikelijk is is het volgende:

[cpp]
for(int i=0; i < 5;i++){}
[/cpp]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan