qq运动积分商城在哪里:JAVA初级编程中的小问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/27 22:20:07
import java.io.*;
class jex{
public static void main(String args[])throws IOException{
System.out.println("输入你的成绩:");
char a=(char)System.in.read();
char b=(char)System.in.read();
int s=(a-'0')*10+b-'0';
if(s>=60)
System.out.println("pass!");
else
System.out.println("lose!");
}
}

程序中“int s=(a-'0')*10+b-'0';”
这句改为“int s=a*10=b;”也可以用,书上加的“-‘0’”是干吗用的。有什么特别的用处。

可以用吗??

char中保存的acsii, 比如你输入字符a=9,b=5
那么9的acsii的值是57 a=57
5 的acsii的值是53 b=53
'0' 的acsii的值是48

所以int s=(a-'0')*10+b-'0' 的计算实际就是
int s=( 57-48)10+ 53-48

而int s=a*10-b 的计算实际就是
int s=57×10-53

两种方式的 计算结果是完全不同的 。

不知道我的 说法你是否满意。

为了取得整数,比如输入85,'8' - '0'就是ASCII表中字符'8'和'0'的距离,就是8,'5' - '0'就是ASCII表中字符'8'和'0'的距离,就是5,所以8 * 10 + 5 = 85。

你若改成int s = a * 10 + b;则是字符a的ASCII值乘以10再加上b的ASCII值,这样你即使输入10结果也是pass