Imprimindo valores impars em maisculos e recebendo uma operação

2 respostas
javatar
Galera estou fazendo uns exercícios aqui, e tem dois deles que não consigo, vou postar o código abaixo:
public class Ex06 {
	public static void main (String[] args) {
        
		for ( int i = 0 ; i < args.length ; i++ ) { 
			if((args.length%2)==0){  
					System.out.print(args[i]+" "); 
			}else{
				args[i] = args[i].toUpperCase(); 
					System.out.print(args[i]+" ");
			}
			
		} 

	}
}
Esse é que eu tenho que imprimir todas as posições dos vetores que for impar tem que imprimir em maiúsculo. por exemplo: João Pedro Silva João PEDRO Silva

Eu informo o nome na hora de executar a classe no Prompt

java Arquivo João Pedro Silva
e o vetor Args recebe esse valor.

o segundo caso, ele da certo, mais se escolher algumas opções não da, é realizado do mesmo jeito, informando na hora de compilar pelo prompt, eu não uso Eclipse nem o NetBeans pois estou aprendendo e faço tudo no Bloco de Notas.

O segundo o usuário informa uma operação
5 * 10
eu tenho que colocar o resultado
e isso tem que testar 4 possibilidades, * , / , + e -
e se o usuário não informa um operador válido eu retorno uma mensagem de erro.
o Código

import javax.swing.JOptionPane;

public class Ex05 {
	public static void main (String[] args) {
		String a = "/";
		String b = "*";
		String c = "-";
		String d = "+";		

			int ex1= Integer.parseInt(args[0]);
			int ex2= Integer.parseInt(args[2]);
				
					
				if (args[1].equals(a))
					System.out.println(args[0]+" / "+args[2]+" = "+(ex1/ex2));
				
				if(args[1].equals(b))
					System.out.println(args[0]+" * "+args[2]+" = "+(ex1*ex2));
							
				if(args[1].equals(c))
					System.out.println(args[0]+" - "+args[2]+" = "+(ex1-ex2));
				
				if(args[1].equals(d))
					System.out.println(args[0]+" + "+args[2]+" = "+(ex1+ex2));
				
				if((args[1] != a)||(args[1]!=b)||(args[1]!=c)||(args[1]!=d))
					System.out.println("O simbolo de operacao que voce digitou eh invalido:");
		
	}
}

Se alguem me ajudar ficarei muito grato...

2 Respostas

jLady

Olá,

Espero que eu possa ajudar:

O seu primeiro código corrigido:

public class Ex06 {

	    public static void main (String[] args) {

	        for ( int i = 0 ; i < args.length ; i++ ) {
                    //aqui nesse if vc tinha colocado o .length nao o i, ele nunca acharia o valor
	            if((i%2)==0){
	                    System.out.print(args[i]+" ");
	            }else{
	                args[i] = args[i].toUpperCase();
	                    System.out.print(args[i]+" ");
	            }

	        }

	    }
}
e aqui está um exemplo para o seu segundo problema
public class Ex05 {  
   public static void main (String[] args) {
        String a = "/";
        String b = "*";
        String c = "-";
        String d = "+";

            int ex1= Integer.parseInt(args[0]);
            int ex2= Integer.parseInt(args[2]);
            String op = args[1].toString();
            float res = 0;


            System.out.println("");

            if(op.equals("+")){
            	res = ex1 + ex2;
            	System.out.println(ex1+"+"+ex2+"="+res);
            }else if (op.equals("-")){
            	res = ex1 - ex2;
            	System.out.println(ex1+"-"+ex2+"="+res);
            }else if(op.equals("/")){
            	res = ex1 / ex2;
            	System.out.println(ex1+"/"+ex2+"="+res);
            }else if(op.equals("*")){
            	res = ex1 * ex2;
            	System.out.println(ex1+"*"+ex2+"="+res);
            }else{
            	System.out.println("voce digitou algo invalido");
            }

    }
}

Qualquer coisa, posta aí...

javatar

jLady, deu certo, o primeiro código era pouca coisa…
Muitíssimo Obrigado =)

Criado 21 de outubro de 2010
Ultima resposta 21 de out. de 2010
Respostas 2
Participantes 2