Char e String no switch

[code]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';
	}
}

}[/code]

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

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

[]'s

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’).

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.

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

Flw

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

Abraços.

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

Abraços.[/quote]

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

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

Flw[/quote]

Sim, com certeza! eu entendi…

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

Abraços.[/quote]

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

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

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!

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?

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

[code]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");
  }

}[/code]

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

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");
      }
}

[2] (:

Cada palavra de qual frase?

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!

[quote=michelato]tipo eu queria que o programa imprimisse assim
teste possui 5 caracteres
do possui 2 carcteres
programa possui 8 caracteres [/quote]

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?

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

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

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 =)