java中char类型如何接收控制台输入
Scannerabc=newScanner(System.in);charnums=abc.???...
Scanner abc=new Scanner(System.in);
char nums=abc.??? 展开
char nums=abc.??? 展开
4个回答
展开全部
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关键字的中文意思是开关、转换的意思,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;
}
}
}
有时候需要我们用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;
}
}
}
展开全部
直接接受char类型怕是不行,但是这样转换下应该是没问题的吧。只旅衡是你为什么要接受char类型呢。先接受String在谨镇轿转换不是更祥肆好么。
abc.next().charAt(0);
abc.next().charAt(0);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
abc.next().charAt(0);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用String不完了
追问
个人选择问题,呵呵呵
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询