Char e String no switch

19 respostas
M
import java.util.Scanner;

public class MC13{
	public static void main(String []args){
		Scanner entrada = new Scanner(System.in);
		double nota;
		String conceito;
		System.out.println("Informe a nota do aluno: ");
		nota = entrada.nextDouble();
		
		if(nota>=10.9){
			conceito='e';
		}
		if(nota<=8.7 && nota>6.5){
			conceito='ms';
		}
		if(nota<=6.5 && nota>4.3){
			conceito='m';
		}
		if(nota<=4.3 && nota>2){
			conceito='mi';
		}
		if(nota<2){
			conceito='i';
		}
	}
}

com char e string da erro, tem como usar esses retornos no conceito, qual seria a forma?

19 Respostas

Foxlol

O Switch só aceita valores INT ou Enum’s.

[]'s

E

Não tem switch ou int; o problema dele é que ele está confundindo a notação de strings (que é com aspas duplas, assim: “mi”) com a notação de chars (que é com apóstrofos, assim: ‘c’).

P

realmente no seu código não tem switch, pra esse código funcionar é só mudar as aspas… ficaria assim:

import java.util.Scanner;

public class MC13{
    public static void main(String []args){
        Scanner entrada = new Scanner(System.in);
        double nota;
        String conceito;
        System.out.println("Informe a nota do aluno: ");
        nota = entrada.nextDouble();

        if(nota>=10.9){
            conceito = "e";
        }
        if(nota<=8.7 && nota>6.5){
            conceito="ms";
        }
        if(nota<=6.5 && nota>4.3){
            conceito="m";
        }
        if(nota<=4.3 && nota>2){
            conceito="mi";
        }
        if(nota<2){
            conceito="i";
        }
    }
}

switch só funciona com tipos compatíveis com int byte, short” ou ainda com char.

Foxlol

Eh no código dele não tem, mas postei pelo título do tópico!

Flw

Tchello

Só a título de informação, no Java 7 o switch finalmente suportará strings.

Abraços.

WRYEL

Tchello:
Só a título de informação, no Java 7 o switch finalmente suportará strings.

Abraços.

dessa eu não tava por dentro, estou pensando se devo sentir medo ou não … :stuck_out_tongue:

P

Foxlol:
Eh no código dele não tem, mas postei pelo título do tópico!

Flw

Sim, com certeza! eu entendi…

Foxlol

WRYEL:
Tchello:
Só a título de informação, no Java 7 o switch finalmente suportará strings.

Abraços.

dessa eu não tava por dentro, estou pensando se devo sentir medo ou não … :stuck_out_tongue:

Creio que “ainda” não hUIOehuIOHAei :lol:

Tchello

O switch de strings veio muito tarde no java…
Até a gente poder usar isso se medo vai levar um tempão, tem muita gente que ainda roda sistemas legados com a 1.5… imagine com a 7.

Abraços!

M

switch(conceito){ case "e":System.out.println("Excelente"); break; }

tipow consertei o erro, caso eu queria continuar meu codigo usando o switch para retornar uma frase, não ha como usar assim néh?

E

Por enquanto não. Quando o Java 7 sair, você vai poder fazer isso.

M
public class MC22{
  public static void main(String[]args){
      int i=0,soma=0;
      String nome  = args[i];
         for( i=0 ; i<args.length ; i++){
            System.out.println(args[i] +" possui "+args[i].length()+" caracteres");
            soma+=args[i].length();
           
         }
           System.out.println("Foram impressos "+soma+" caracteres");
      }
}

com faria para imprimir quantos caracteres tem cada palavra da frase individualmente, sem usar arrays? tem como fazerr isso?

P

Acredito que essa seria uma opção:

public class MC22{
    public static void main(String[]args){
        int soma=0;
        String nome= "teste";
        for(int i=0; i <= nome.length(); i++){
            soma = i;
         }
        System.out.println("Foram impressos "+soma+" caracteres");
      }
}
franciscossouza

[2] (:

Cada palavra de qual frase?

M

public class MC22{ public static void main(String[]args){ int soma=0; String nome= "teste do programa"; for(int i=0; i <= nome.length(); i++){ soma = i; } System.out.println("Foram impressos "+soma+" caracteres"); } }

tipo eu queria que o programa imprimisse assim
teste possui 5 caracteres
do possui 2 carcteres
programa possui 8 caracteres

gostaria de saber nos dois modos, com array e sem array!

franciscossouza

michelato:
tipo eu queria que o programa imprimisse assim
teste possui 5 caracteres
do possui 2 carcteres
programa possui 8 caracteres

Então é para…

public class MC22{ public static void main(String[]args){ String nome = "teste"; System.out.println(nome + " possui " + nome.length() + " caracteres."); } }

… fazer isso?

Agora, quanto aos arrays, você se refere a arrays de caracteres ao invés da classe String?

M

tipow se fosse uma string com varios palavras tipow um nome comleto entendeu?

M

public class MC23{ public static void main(String[]args){ int i=0,soma=0,c=0; String frase = args[i]; String inversa=""; for( i=frase.length()-1 ; i>=0 ; i--){ inversa+=frase.charAt(i); } System.out.println(inversa); } }

ele não imprime toda a string que eu passo por referencia no ms-dos, tipow ele imprime ao contrario somente a primeira para,qual será o probllema?

e no outro codigo que eu postei eu estava me referenciando a uma string com 2 palavras ou mais e nao somente 1!

obrigado

franciscossouza

Ah, entendi. Você deseja passar várias palavras no args e imprimir todas? (:

public class MC22{ public static void main(String[]args){ for (String nome : args) { System.out.println(nome + " possui " + nome.length() + " caracteres."); } } }

Acredito que seja assim =)

Criado 26 de outubro de 2009
Ultima resposta 27 de out. de 2009
Respostas 19
Participantes 7