类型: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关键字的中文意思是开关、转换的意思,switch语句在条件语句中特别适合做一组变量相等的判断,在结构上比
if语句
要清晰很多。 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; } } }