java中如何輸入char型別
java中基本資料型別的輸入包括整形的輸入:in.nextInt();單精度浮點型:in.nextFloat();雙精度浮點型:in.nextDouble();字串型別:in.next();in.nextLine();那麼,您是否以為char型別也如in.nextChar();這樣呢?如果您這樣寫過,那麼您一定見過這個error:“The method nextChar() is undefined for the type Scanner”。那麼char型別該如何輸入呢???
有時候需要我們用Scanner接收char型別資料,而不是接收String。比如,當我們要用到switch()語句時,就不能用String型別了。
switch語句的語法格式為:
switch(表示式){
case 值1:
功能程式碼1;
[break;]
case 值2:
功能程式碼2;
[break;]
……
default:
功能程式碼1;
[break;]
}
語法說明:
1、 表示式的型別只能為byte、short、char和int這4種之一。
2、 值1、值2…值n只能為常數或常量,不能為變數。
3、 功能程式碼部分可以寫任意多句。
4、 break關鍵字的意思是中斷,指結束switch語句,break語句為可選。
5、 case語句可以有任意多句,是標號語句。
6、 default語句可以寫在switch語句中的任意位置,功能類似於if語句中的else.執行流程:當表示式的值和 對應case語句後的值相同時,既從該位置開始向下執行,一直執行到switch語句的結束,在執行中,如果 遇到break語句,則結束switch語句的執行。
正常使用Scanner時,可以這樣:
Scanner in = new Scanner(System.in);
char c = in.next().charAt(0);
下面是ACM中的模擬計算器的題目,以此作為示例:
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int b = in.nextInt();
char c = in.next().charAt(0);
switch(c)
{
case '+':
System.out.printf("%d",a+b);
break;
case '-':
System.out.printf("%d",a-b);
break;
case '*':
System.out.printf("%d",a*b);
break;
case '/':
if(b!=0)
{
System.out.printf("%d",a/b);
}
break;
}
}
}