package sds;
import java.util.Scanner;
public class Test {
static int Scanner ;
public static void main(String args[]) {
int a;
System.out.print("输入");
Scanner scan = new Scanner(System.in);
String read = scan.nextLine();
System.out.println("输入数据:"+read);
a=Scanner;
if(a>=90){
System.out.println("A");
}
else if(a>=60){
System.out.println("B");
}
else{
System.out.println("C");
}
}
} (求大神改正)
或者a = Scanner 改成 a = Integer.valueOf(read).intValue();
大于90就是A,60以上B,60一下C
if(a<=60){
System.out.println('C');
}else if(a>60&&<=90){
System.out.println('B');
}else{
System.out.println('A');
}
你试试
static int Scanner ; 把static去掉试试
你自己打印的输入的值为read ,赋值的时候 a=Scanner?,
int read = scan.nextInt();
a =read;
同学,你的Scanner没有赋值呀,你赋值给了read,read的到的字符串转化成数字,赋给Scanner再判断
int a;
System.out.println("input");
Scanner scan = new Scanner(System.in);
Integer read = scan.nextInt();
System.out.println("input:" + read);
a = read;
if(a >= 90){
System.out.println("A");
} else if (a >= 60){
System.out.println("B");
} else {
System.out.println("C");
}
a 赋值为你获取的值
键盘输入的值给了scan,然后传至read,而a=Scanner,不应该是a=read嘛?,a=Scanner表示scanner对应的值肯定大于90。同意楼上的观点
a=Scanner; 你这一句是什么意思?
Scanner这个静态变量申明初始化后就没有再赋值了,你现在把一个只初始化的变量赋给a,
所以无论你输入什么a这个变量都是0(scanner的初始化值)。
你现在的写法是先获得String类型的值,那你就得把String转换成int型,可以使用Integer包装类
String read = scan.nextLine();
Scanner = Integer.valueOf(read);
a= Scanner;
==================
其实可以直接获取int型的数据一句到位
Scanner = scan.nextInt();
但是以上的写法你都要考虑一个问题就是无论用这两种方法的哪一种,如果输入的数据有非数字,运行起来会报错。
如果想做的完整一点还得判断是否为数字。
将a=Scanner 改为:a=Integer.parseInt(read); 就行了
你定义了一个整型变量a和一个整型静态变量Scanner ,然后他们默认的值都是0,你把静态变量Scaner赋值为a,那么a还是0,所以进入到if判断的时候,
就是C了。
不知道你为啥要这么写,而且获取Scanner键盘输入不用nextLine,不然关于数值计算,你可能要将String转化为int。
建议改为一下:
package sds;
import java.util.Scanner;
public class Test {
//static int Scanner ;
public static void main(String args[]) {//虽然没错,但是建议以后写数组的时候写成String[] args,你这种数组声明方式是c/c++的。
//int a;
System.out.print("输入");
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
//String read = scan.nextLine();
//System.out.println("输入数据:"+read);
//a=Scanner;
if(a>=90){
System.out.println("A");
}
else if(a>=60){ //这边如果你是想要60-90分的话,最好别这样写,因为你这样写,我输入的值大于60,会输出A B结果。
System.out.println("B");
}
else{
System.out.println("C");
}
}
}
Pattern pattern = Pattern.compile("-?[0-9]+.?[0-9]");
Matcher isNum = pattern.matcher(read);
boolean matches = isNum.matches();
使用正则表达式判断是否为数字,是数据返回true.
package test;
import java.util.Scanner;
public class test2 {
public static void main(String[] args) {
int a;
System.out.println("输入");
Scanner scan = new Scanner(System.in);
String read = scan.nextLine();
System.out.println("输入数据:"+read);
while(!(read.matches("\d+"))){
System.out.println(read+"不是数字");
read = scan.nextLine();
}
a=Integer.parseInt(read,10);
if(a>=90){
System.out.println("A");
}
else if(a>=60){
System.out.println("B");
}
else{
System.out.println("C");
}
}
}
验证输入的每个字符是不是数字,是数字进行比较,否则就继续输入,一直输入到是数字的时候结束输入,输出值