Return 0

Maio 8, 2008

Limpar a Tela em Java

Arquivado em: Java — Tags: — computeiro @ 2:36 pm

Todos sabemos que além do famoso System.out.println() em Java, temos também o System.out.printf(), que funciona exatamente como o printf de C: \

public class LimpaTela
{
    public static void main(String[] args)
    {
        int n = 0;

        while(n++ < 11)
        {
            System.out.printf("%s\n%s\n%s\n%s\n",
                              "Teste Limpa Tela!",
                              "Teste Limpa Tela!",
                              "Teste Limpa Tela!",
                              "Teste Limpa Tela!");

            try 
            {
                Thread.sleep(2000); //funcao para dar uma pequena pausa
            }
            catch (InterruptedException e) { }

            System.out.printf("\33[2J"); //isto aqui limpa a tela
        }
    }
}

Há várias outras funcionalidades do printf, você pode conferi-las em (estão em C, mas se aplicam em Java usando System.out.printf() ):

http://br.geocities.com/sdiasneto/c_int/printf.htm

http://br.geocities.com/sdiasneto/c_int/index.htm

return 0

Maio 7, 2008

Instruções If e Else em C, C++ e Java

Arquivado em: C/C++, Java — Tags:, , , , — computeiro @ 7:45 pm

Bastante requisitada por programadores iniciantes e/ou programadores provenientes de outra linguagem, a maneira de se construir um bloco de instruções if/else é bastante trivial e exatamente igual em C, C++ e Java. Aqui vai um exemplo:

Em C:

# include <stdio.h>

int main(int argc, char** argv)
{
    int x = 0;
    int y = 1;

    if(x > y)
        printf("%d eh maior que %d\n", x, y);
    else
        printf("%d nao eh maior que %d\n", x, y);

    x = y--;

    if(x > y)
        printf("%d eh maior que %d\n", x, y);
    else
        printf("%d nao eh maior que %d\n", x, y);

    return 0;
}

Em C++:

# include <iostream>

using namespace std;

int main(int argc, char** argv)
{
    int x = 0;
    int y = 1;

    if(x > y)
        cout << x << " eh maior que " << y << endl;
    else
        cout << x << " nao eh maior que " << y << endl;

    x = y--;

    if(x > y)
        cout << x << " eh maior que " << y << endl;
    else
        cout << x << " nao eh maior que " << y << endl;

    return 0;
}

Em Java:

public class IfElse
{
    public static void main(String args[])
    {
        int x = 0;
        int y = 1;

        if(x > y)
            System.out.println(x + " eh maior que " + y);
        else
            System.out.println(x + " nao eh maior que " + y);

        x = y--;

        if(x > y)
            System.out.println(x + " eh maior que " + y);
        else
            System.out.println(x + " nao eh maior que " + y);
    }
}

O velho problema das chaves nos if/else aninhados:

Sabemos que ao usar apenas uma instrução dentro de um if ou de um else, as chaves são opcionais. Mais de uma instrução, no entanto, torna obrigatório o uso das chaves. Vejamos um problema comum com o uso das chaves em if/else aninhados:

# include <stdio.h>

int main(int argc, char** argv)
{
    int x = 5;

    if(x == 5)
        x = 4;
        if(x == 3)
            x = 2;
    else
        x = 0;

    //imprima x

    if(x == 5)
        x = 4;
        if(x == 3)
            x = 2;
    else
        x = 1;

    //imprima x

    return 0;
}

O que ocorrerá com o valor de x neste código? Teste-o e tire suas conclusões. A dica que eu posso dar é que pode ser resolvido fazendo isto:

# include <stdio.h>

int main(int argc, char** argv)
{
    int x = 5;

    if(x == 5)
    {
        x = 4;
        if(x == 3)
            x = 2;
    }else
        x = 0;

    //imprima x

    if(x == 5)
    {
        x = 4;
        if(x == 3)
            x = 2;
    }else
        x = 1;

    //imprima x

    return 0;
}

Teste os dois códigos e perceba que uma instrução else sempre pertence a o último if, no caso deste if/else conter apenas uma instrução. Uma dica: para evitar problemas, sempre use chaves em if/else, não importa se ele tiverem mais de uma instrução ou apenas uma.

return 0

Abril 16, 2008

Como ler char em Java

Arquivado em: Java — Tags:, , — computeiro @ 11:53 pm

Para ler um char em Java, só com try e catch. O melhor jeito de se fazer é usando o método read(), que retorna um inteiro. Portanto, um casting é necessário.

import java.io.Reader;
import java.io.IOException;
//se preferir, vc pode importar java.io.*

public class Char
{
    public static void main(String args[])
    {
        char c = 0; //é necessário inicializar o char
        try
        {
            c = (char) System.in.read();
        }
        catch(IOException erro)
        {
            System.err.println(erro.getMessage());
        }
        System.out.println(c);
    }
}

return 0

Blog no WordPress.com.