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);
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.
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:
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);
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).
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
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.
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.
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;
}
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
[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 ));
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;
}
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,
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.