初学java初学者 求指教以下有关问题

初学java菜鸟 求指教以下问题
本人写的简易四则运算代码 不造哪里错了T^T
import java.util.*;
public class circulate {


public static void main(String[] args) {
    double i,j,s=0;
    char c;
    Scanner input=new Scanner("System.in");
     System.out.println("请输入2个数:"); 
      i=input.nextDouble();
    j=input.nextDouble(); c=input.next().charAt(0);
    System.out.println("请输入运算符:");
    
    switch(c) 
    {case '+' :s=i+j;
      break;
    case '-' :s=i-j;
      break;
    case '*' :s=i*j;
     break;
    case '/' :
     if(j==0)
     {System.out.println("输入错误");System.exit(0); 
    
     }
     else  {s=i/j;
     break;}
    }
    System.out.println(i+"c"+j+"="+s);
    
}

}


以下是错误
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:840)
at java.util.Scanner.next(Scanner.java:1461)
at java.util.Scanner.nextDouble(Scanner.java:2387)
at circulate.main(circulate.java:10)

------解决思路----------------------
 Scanner input=new Scanner("System.in");==> Scanner input=new Scanner(System.in)
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

最后怎么把运算符号输出来初学java初学者 求指教以下有关问题


  System.out.println(i+"c"+j+"="+s);

用"c"结果出来是:
请输入数字:
9
请输入运算符:
-
请输入数字:
7
9.0c7.0=2.0
还是没有运算符号初学java初学者 求指教以下有关问题


  System.out.println(i+" “+c+” "+j+"="+s);
------解决思路----------------------
1.public class circulate
java规则中类名首字母大写,如果是多个单词组成那么每个首字母大写,这是规范

2.Scanner input=new Scanner("System.in");这里()内的是一个变量,加上引号变成字符串了,固定的了
比如:Person a = new Person("旺财");这就表示新创建一个新人a 他的名字叫旺财,而这里的是创建一个新的Scanner的对象,但是他叫什么?未知的/不确定的,所以是个变量,所以不能加引号。这样就能理解了。

3.i=input.nextDouble(); 这里的input是由Scanner类创建的一个新的对象/实例,nextDouble()是调用这个类的一个方法,这个不难理解
注意的是Scanner类的功能是一个扫描器,扫描控制台输入的内容,nextDouble()这个方法是将扫描到的内容转换成Double类型,当然nextInt就是该内容转换成int类型,如果转不了就会抛出异常。不清楚异常可以暂时理解成报错,这里的i、j、c从控制台获取的。

4.System.out.println(i+"c"+j+"="+s);这里问题也挺多的,首先 c 这个用引号了,就变成字符串了,不是变量了。就跟后面的 = 是一个意思了,会直接输出引号内的内容。但是如果不加引号,虽然是变量,但是 i、c 、j 这三个都是基本数据类型,之间用 + 相连就会做值的运算,
比如 int i = 1;int j = 2;System.out.print(i+j) ;就会输出 3。不会输出 1 + 2;
注意的是 c 虽然是个char 类型,但是也是基本数据类型,运算的时候会将他自动转换成ASCII值。
假设用户输入 i = 1 , j = 1 , c = +  
那么输出结果就是1 + 43 + 1 = 45 . c对应的ASCII码的值是43,这个可以自己去查ASCII表.
5.解决办法
一种,分开输出结果
System.out.print(i);
System.out.print(c);
System.out.print(j);
System.out.print("="+s);
注意这里用 print 不用println 不回车换行。这纯粹是写着玩的。 i 就是1,c 就是 + (不参与运算就不会转成ASCII码的值) ,j 就是1 后面接着是 = 2,字符串跟数值相连,结果还是字符串。
二种:先将 i ,j,c  转换成字符串
String ii = "" + j ;  //用一个空字符串 加上这个值  结果就变成字符串了。
同理
String jj = "" + j;
String cc = "" + c;
这样在System.out.println(i+c+j+"="+s);这里面 i、c、j、=都是字符串了,字符串相加就是拼接嘛,拼接完了再和最后一个s相加,不会求值,所以就直接拼接打印输出了。
这样就能解决问题了。
这只能适用与新手练习的时候用用,真实写这类的功能不会这么写的。