import java.io.*;
class jex4_1
{
public static void main(String[] args )throws IOException
{
char a;
char b;
System.out.println("请输入你的成绩");
a=(char)System.in.read();
b=(char)System.in.read();
int score;
score=(a-'0')*10+b-'0';//score=a*10+b;
if(score>60)
System.out.println("你可以毕业了");
else
System.out.println("你不能毕业");
}
}
score=(a-'0')*10+b-'0';//score=a*10+b;
两都有什么不同?

解决方案 »

  1.   

    你的score是整形,但是你输入读取出来的是一个char,所以要进行转换,按照整形来进行计算。为什么要读两个char呢?
      

  2.   

    小菜回答:运算会被自动转成int型啊  
      

  3.   

    score=(a-'0')*10+b-'0';//score=a*10+b; 
    两都有什么不同?
    把a和b要转型
      

  4.   

    score=(a-'0')*10+b-'0';//score=a*10+b; a,b是字符不是数字,在和数字作计算时是使用的其ascii码。
      

  5.   

    a和b是字符,运算时转为ascii码(例如:'1'的ascii码是49):
    所以如果输入的是12,那么:
    score=a*10+b; //score的值就是49*10+50=540;
    而score=(a-'0')*10+b-'0';//score的值就是1*10+2=12;
      

  6.   

    用 Scanner 类Scanner sc = new Scanner(System.in);
         int i = sc.nextInt();
      

  7.   

    字符只有转换成年int //double后才能计算啊
      

  8.   

    score=(a-'0')*10+b-'0'
    a,b是字符不是数字,在和数字作计算时是使用的其ascii码。
      

  9.   

    直接读取一个int不就可以了吗?