Re:Problemas com return

2 respostas
davidbuzatto

Vc quer retornar o quadrado ao invés de imprimir na tela?

Usa um StringBuffer, armazena os astericos nele e os pulos de linha e retorna a String do StringBuffer.

2 Respostas

fcoury

Vejo duas interpretações para o que vc escreveu:

  1. O método retornar uma string preenchida com o quadrado;

  2. O método preencher uma string passada - esse approach é impossível porque uma String é imutável. No meu exemplo, uso um StringBuffer.

Veja:

package com.testing.string;

import java.util.Scanner;

public class TestSquare {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new TestSquare().determinaSquare();
	}

	public void determinaSquare() {
		 
 		Scanner input = new Scanner(System.in);
 		
 		int numero;
 		
 		System.out.println("Entre com o numero do lado de seu quadrado: ");
 		numero = input.nextInt();
 		
 		// retorna String
 		System.out.println(squareOfAsterisks(numero));
 		
 		// preenche a String
 		StringBuffer sb = new StringBuffer();
 		fillSquareOfAsterisks(sb, numero);
 		System.out.println(sb.toString());
 	}
 	
 	public String squareOfAsterisks(int side){
 		StringBuffer s = new StringBuffer();
 		
 		for(int count = 1; count <= side*side; count++){
 			
 			s.append('*');
 			
 			if (count % side == 0){
 				s.append('\n');
 			}
 		}
 		return s.toString();
 	}

 	public void fillSquareOfAsterisks(StringBuffer sb, int side){
 		for(int count = 1; count <= side*side; count++){
 			
 			sb.append('*');
 			
 			if (count % side == 0){
 				sb.append('\n');
 			}
 		}
 	}
}

É isso?

Filipe_Cruz

Olá pessoal …

desenvovi um metodo que resebe como parametro a entrada de um inteiro e gera um quadrado com asteriscos de lado do tamanho do numero que foi entrado … mas minha duvida eh de como eu posso manipular esse meto para que ele me retorne soh a figura desse quadrado sem me solicitar o retorno de algo…

package br.com.exercicos;

import java.util.Scanner;

public class Square {
	
	public void determinaSquare(){

		Scanner input = new Scanner(System.in);
		
		int numero;
		
		System.out.println("Entre com o numero do lado de seu quadrado: ");
		numero = input.nextInt();
		System.out.println(squareOfAsterisks(numero));
		
	}
	
	public int squareOfAsterisks(int side){
		
		for(int count = 1; count <= side*side; count++){
			
			System.out.print("*");
			
			if (count % side == 0){
				System.out.println();
			}
		}
		return side;
	}

}

Valew pessoal…

Abraço…

Criado 20 de outubro de 2006
Ultima resposta 20 de out. de 2006
Respostas 2
Participantes 3