dÚvida programa que informa nÚmero maior

ola a todos, minha pergunta é simples, estou fazendo um programinha bem básico, vou entrar com 2 números inteiros e quero que ele me diga qual o maior deles, mas não posso usar nenhum teste, (if, while, do ) nada disso, apenas math.abs ou outro parecido, alguém pode me ajudar a completar???

OBRIGADO.

import java.util.Scanner;
public class numeroMaior {
public static void main (String Args []){
Scanner s=new Scanner (System.in);
int x,y;
System.out.println("Digite o 1º número: ");
x=s.nextInt();
System.out.println("Digite o 2º número: ");
y=s.nextInt();
// x>y; PRECISO SABER QUAL DOS 2 NÚMEROS É O MAIOR SEM USAR VETOR, IF, WHILE, DO.
System.out.println(“O maior número é”+x);

}

}

System.out.println(Math.max(x,y));

Isso pode?

System.out.println("O numero maior é : " + (x < y ? x : y));

Esse pode[] ?

[quote=viniciusalvess]System.out.println("O numero maior é : " + (x < y ? x : y));

Esse pode[] ?[/quote]

GRANDE VINICIUS,

VC PODERIA ME EXPLICAR COMO FUNCIONA ISSO: + (x < y ? x : y));[/code]
???

OBRIGADO

Pesquise sobre “operador tenário”, o funcionamento é basicamente “condição?expressão:expressão2” Ou seja, se a condição for verdadeira, ele retorna expressão, senão expressão2.

Outro exemplo:

String idI = request.getParameter("idInstancia")==null?"default":request.getParameter("idInstancia");           

Se [idInstancia] e null [idI] recebe o valor “default”, em outro caso reaplica:request.getParameter(“idInstancia”)


RuGI
Isaac Ruiz Guerra.

[quote=marcelotpontes][quote=viniciusalvess]System.out.println("O numero maior é : " + (x < y ? x : y));

Esse pode[] ?[/quote]

GRANDE VINICIUS,

VC PODERIA ME EXPLICAR COMO FUNCIONA ISSO: + (x < y ? x : y));
???

OBRIGADO[/quote]

Oi,

Na realidade… isso não deixa de ser um if.

? = if
: = else

Tchauzin!

Se seu professor quer que você use a classe Math, a solução é mesmo o uso do método Math.max:

[code]import java.util.Scanner;
public class numeroMaior {

public static void main (String Args []){
Scanner s=new Scanner (System.in);
int x,y;
System.out.println("Digite o 1º número: ");
x=s.nextInt();
System.out.println("Digite o 2º número: ");
y=s.nextInt();
System.out.println(“O maior número é”+Math.max(x, y));
}
}[/code]

Outra coisa. Vi que você é novo no fórum então aqui vão algumas dicas de postagem:

  1. Nunca poste o título do tópico em letras maiúsculas, como você fez. Isso é considerado falta de respeito. Muitos lêem maiusculo como grito mas, no mínimo, você está tentando chamar mais atenção do que os outros, o que é ruim de qualquer jeito (fora que ia ficar horrível ler os títulos dos tópicos se todos resolvessem fazer isso);
  2. Não use palavras como Help! Ajudem! Please! Urgente! no título dos seus tópicos (ok, vc não cometeu essa gafe, mas não custa avisar).
  3. Quando for postar códigos, use a tag code. Assim o código fica colorido e identado. Sem isso, muita gente nem sequer vai ler o seu código. Para conhecer esse e outros recursos do fórum, leia o seguinte tópico: http://www.guj.com.br/posts/list/50115.java
  4. Dê sempre títulos descritivos para seu tópico. Chama-lo só de “Dúvida”, “Problema”, etc. dificulta para quem vai te ajudar. O título que você deu para esse tópico, por exemplo, está ótimo. :slight_smile:
  5. Procure não resolver coisas por e-mail ou MP. O fórum é lido por todos. Várias pessoas podem responder sua dúvida e outras tantas irão usar o seu próprio tópico quando recaírem no mesmo problema, sem que a gente nem fique sabendo. Até por isso, postei tantas dicas aqui. :wink:

Abraços e bem-vindo ao GUJ.

Oi,

Não existe uma forma correta sem utilizar if, do, while etc…
o que você poderá fazer é ter um resultado booleano:

System.out.println("O número x é maior ?"+(x > y)); System.out.println("O número x é menor ?"+(x < y));

Ou então, a alternativa + correta seria:

System.out.println(Math.max(x,y));

Ela não mostra a opção IF visivelmente, porém faz isso em sua codificação interna:

/** * Returns the greater of two <code>int</code> values. That is, the * result is the argument closer to the value of * <code>Integer.MAX_VALUE</code>. If the arguments have the same value, * the result is that same value. * * @param a an argument. * @param b another argument. * @return the larger of <code>a</code> and <code>b</code>. * @see java.lang.Long#MAX_VALUE */ public static int max(int a, int b) { return (a >= b) ? a : b; }

:wink:

Tchauzin!

OK Vinicius, gostaria de pedir desculpas pelas “gafes” cometidas anteriormente, realmente sou novo por aqui, mas apreendo rápido e vou me esforçar! gostaria de agradecer a Lina, JAvaLang, Vinicius e todos que ajudaram consegui rsolver a questão, sou aluno do curso de Informática na UNIFOR em fortaleza. Abraço

Sem problemas, é seu primeiro post.
Seria bronca só se vc já tivesse milhares de postagens… hehehhe

[quote=lina][quote=marcelotpontes][quote=viniciusalvess]System.out.println("O numero maior é : " + (x < y ? x : y));

Esse pode[] ?[/quote]

GRANDE VINICIUS,

VC PODERIA ME EXPLICAR COMO FUNCIONA ISSO: + (x < y ? x : y));
???

OBRIGADO[/quote]

Oi,

Na realidade… isso não deixa de ser um if.

? = if
: = else

Tchauzin![/quote]

Bom dia

este codigo que o pessoal passou do numero maior nao esta retornando numero maior corretamente aqui no meu computador.
Eles mandaram o seguinte codigo :

[code]

System.out.println(" O numero maior e : " + (x < y ? x : y ));

o codigo que funciona no meu e este :

System.out.println(" O numero maior e : " + (x > y ? x : y ));

com o sinal de maior funciona.

te mais.

[quote=lina]Oi,

Não existe uma forma correta sem utilizar if, do, while etc…
o que você poderá fazer é ter um resultado booleano:

System.out.println("O número x é maior ?"+(x > y)); System.out.println("O número x é menor ?"+(x < y));

Ou então, a alternativa + correta seria:

System.out.println(Math.max(x,y));

Ela não mostra a opção IF visivelmente, porém faz isso em sua codificação interna:

/** * Returns the greater of two <code>int</code> values. That is, the * result is the argument closer to the value of * <code>Integer.MAX_VALUE</code>. If the arguments have the same value, * the result is that same value. * * @param a an argument. * @param b another argument. * @return the larger of <code>a</code> and <code>b</code>. * @see java.lang.Long#MAX_VALUE */ public static int max(int a, int b) { return (a >= b) ? a : b; }

:wink:

Tchauzin![/quote]

Para que serve o >= sendo que funciona somente colocando o maior?

Gostaria de saber porque foi usado o sinal >= maior ou igual ?

[code]

/**

* Returns the greater of two int values. That is, the

* result is the argument closer to the value of

* Integer.MAX_VALUE. If the arguments have the same value,

* the result is that same value.

*

* @param a an argument.

* @param b another argument.

* @return the larger of a and b.

* @see java.lang.Long#MAX_VALUE

*/

public static int max(int a, int b) {

return (a >= b) ? a : b;

}

O >= serve pois ele retorna o mesmo valor caso os números sejam iguais, embora os dois códigos acabem produzindo o mesmo resultado no fim das contas, dessa forma facilita a leitura.