怎么判断出来,想结束,我输入结束就能跳出。我不输入就能一直计算,(现在可以一直计算)。老师留的作业,我自己写到这了下面不是很理解求指导下!!!

解决方案 »

  1.   

    for exampleint m=0, n=0;
    String s = "";
    Scanner sc = new Scanner(System.in);
    while (true) {
        while(true) {
            System.out.print("please input a number:");
            try {
               m = sc.nextInt();
               break;
            } catch (Throwable e) {
                System.out.println("error input, please input again.");
            } 
        }    while(true) {
            System.out.print("please input another number:");
            try {
               n = sc.nextInt();
               break;
            } catch (Throwable e) {
                System.out.println("error input, please input again.");
            } 
        }    while(true) {
            System.out.print("please input operator[+-*/>]:");
            try {
               s = sc.next();
               if (!s.matches("[+-*/]")) throw new Exception("operator is not in selection.");
               break;
            } catch (Throwable e) {
                System.out.println("error input, please input again.");
            } 
        }    try {
            ScriptEngine en = new ScriptEngineManager().getEngineByName("JavaScript");
            String exp = String.format("%d %s %d", m, s, n);
            System.out.printf("%s = %s\s", exp, en.eval(exp));
        } catch (Throwable e) {
            e.printStackTrace();
        }    System.out.print("do you want to try again?[yes/no]:"); //控制退出循环
        s = sc.nextLine();
        if (s.matches("[nN][oO]")) break;
    }
      

  2.   

    按你的没法改,因为你没有限制用户的输入顺序,用户不按顺序输入,你的程序就崩了
    如果你能保证用户的输入顺序,那你就把最后一个while(true)的代码都删掉,改成以下
    String s = name.nextLine();
    if ("".equals(s)) break;
      

  3.   

    昨天那个计算器的贴你还没结贴给分我吧???
    今天我在昨天那个基础上帮你改了,记得结贴给分

    package eg4;import java.util.Scanner;public class Tests { public static void main(String[] args) {
    @SuppressWarnings("resource")
    Scanner nam=new Scanner(System.in);
    int a=nam.nextInt();
    int d = 0;
    while (true) {
    String b=nam.next();
    int c=nam.nextInt();
    if (b.equals("no")) {//执行switch前加个if判断b是否等于no,是就跳出,否就执行switch
    break;
    }else {
    switch (b) {
    case "+":
    d=a+c;
    System.out.println(a+b+c+"="+d);
    System.out.println(d);
    break;
    case "-":
    d=a-c;
    System.out.println(a+b+c+"="+d);
    System.out.println(d);
    break;
    case "*":
    d=a*c;
    System.out.println(a+b+c+"="+d);
    System.out.println(d);
    break;
    case "/":
    d=a/c;
    System.out.println(a+b+c+"="+d);
    System.out.println(d);
    break;
    }
    a=d;
    }
    }
    }
    }