请高手帮我看看要怎样改才可以达到我想的结果!!
我的想法是当我输入一个数字时。他判断出这个学生的成绩怎样。。我知道用其它的语法可以。。但我都想用swhile看行不行谢谢!!我写的如下,一定不行。需要怎样改请指叫:
import java.io.*;
public class weitch 
{

public static void main (String []args) throws IOException
{
int k=0;
k=(int)System.in.read();
String str=null;
switch(k)
{
case 1:
str+="成绩不合法";
break;
case 2:
str+="成绩级格";
break;
case 3:
str+="成绩优秀";
break;
case 4:
str+="成绩优良";
break;
default:
str+="非法";
break;

}
System.out.println(str);
}}

解决方案 »

  1.   


    import java.io.BufferedReader;
    import java.io.IOException;
    import java.util.Scanner;public class Weitch {    public static void main(String[] args) throws IOException {
    int k = 0; Scanner scanner = new Scanner(System.in);
    while (scanner.hasNextInt()) {
        k = scanner.nextInt();     String str = null;
        // System.out.println(k);
        switch (k) {
        case 1:
    str = "成绩不合法";
    break;
        case 2:
    str = "成绩级格";
    break;
        case 3:
    str = "成绩优秀";
    break;
        case 4:
    str = "成绩优良";
    break;
        default:
    str = "非法";
    break;     }
        System.out.println(str); }    }}
    /*result:
    1
    成绩不合法
    2
    成绩级格
    3
    成绩优秀
    4
    成绩优良
    5
    非法
    6
    非法
    */
      

  2.   

    Scanner s = new Scanner(System.in);
       char in = s.next().charAt();
    然后接着switch也可以
      

  3.   

    Console console = System.console();
    String comment;
    if(console != null){
        String grade = console.readLine("%s","请输入成绩[1-4]:");
        switch(grade){
            case "1":  comment = "成绩差";break;
            case "2":  comment = "成绩合格"; break;
            case "3":  comment = "成绩优秀"; break;
            case "4":  comment = "成绩优良"; break;
            default:  comment = "你很特别"; break;
        }
    }
      

  4.   

    首先,你应该将你的类weitch大写。
    第二,你这样直接处理的k的值为48+你输入的数,要改的话,在后面填一个k = k - 48;
    第三,你的String str= null; 后面应该直接赋值,即直接str="非法"; 用"=",而不是"+="
    你将上面的改正一下就可以得到你要的结果了。
      

  5.   

    可以修改成这样:
    import java.io.IOException;
    import java.util.Scanner;
    public class Weitch  
    {public static void main (String []args) throws IOException
    {
    int k=0;
    Scanner in = new Scanner(System.in);
    k = in.nextInt();
    String str="";
    switch(k)
    {
    case 1: 
    str+="成绩不合法";
    break;
    case 2:
    str+="成绩级格";
    break;
    case 3:
    str+="成绩优秀";
    break;
    case 4:
    str+="成绩优良";
    break;
    default:
    str+="非法";
    break;}
    System.out.println(str);
    }
    }注释:通过扫描器对象in,能够把你输入的内容读出,再通过in对象的nextInt方法得到一个刚才你输入的整数。
      

  6.   


    才开始学java请问上面二个语句什么意思。且什么作用。
      

  7.   

    import java.util.*;
    public class Test  {
    public static void main (String []args) {
    Scanner sc = new Scanner(System.in);
    int k = sc.nextInt();
    String str = "";
    switch(k) {
    case 1: str+="成绩不合法"; break;
    case 2: str+="成绩级格";  break;
    case 3: str+="成绩优秀"; break;
    case 4: str+="成绩优良"; break;
    default: str+="非法"; break;
    }
    System.out.println(str);
    }
    }这是switch语句
    可以用while的:
      

  8.   

    你应该学习 怎么查询api文档 !
    api文档下载:
    http://hi.baidu.com/kfind/blog/item/db5be23da25e2bc29f3d628d.html
      

  9.   

    别外在问个小白问题都给分了啊~~为什么我的解析器里出现这个东东:
    java.lang.Error: 无法解析的编译问题:
    Scanner 无法解析为类型
    Scanner 无法解析为类型我用的是j2re1.4.2难道是版本问题?
      

  10.   

    版本太低了,升级到java7吧。