为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 BufferedReader 输入实现 do...while

如何使用 BufferedReader 输入实现 do...while

喵喔喔 2023-08-04 10:00:44
我正在尝试制作一个简单的计算器程序,并且基本功能有效,但我正在尝试在程序末尾实现“您想要执行其他操作吗”,以便如果答案是“则它会关闭” t y。说我的“yesorno”无法解析为变量public static void main(String[] args) throws IOException {    // TODO Auto-generated method stub    do {        System.out.println("Enter 2 numbers");        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));        int numero1=Integer.parseInt(br.readLine());        BufferedReader br2=new BufferedReader(new InputStreamReader(System.in));        int numero2=Integer.parseInt(br2.readLine());        System.out.println("Select an operation");        BufferedReader br3=new BufferedReader(new InputStreamReader(System.in));        char Operacija=(char)br3.read();        switch (Operacija)        {        case '+':            System.out.println(numero1+numero2);            break;        case '-':            System.out.println(numero1-numero2);            break;        case '/':            System.out.println(numero1/numero2);            break;        case '*':            System.out.println(numero1*numero2);            break;        default:            System.out.println("Illegal operation");        }        BufferedReader br4=new BufferedReader(new InputStreamReader(System.in));        char yesorno=(char)br4.read();    }while (yesorno=='y');      }}
查看完整描述

2 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

这是无效的:while (yesorno='y');

您为变量赋值,而while语句需要布尔表达式。

所以你想写: while (yesorno=='y');


而且您不需要创建/声明这么多BufferedReader对象,因为它们都使用相同的源:System.in。


因此,只需在以下之前声明并实例化它一次do/while():


BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

char yesorno= 'y';


do {

    System.out.println("Enter 2 numbers");

    //...

}  

while (yesorno=='y');

并在需要从标准输入读取输入的任何地方使用它。


查看完整回答
反对 回复 2023-08-04
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

char yesorno尝试在进入循环之前定义:


并参考 davidxxx:你需要使用==而不是=


public static void main(String[] args) throws IOException {

    // TODO Auto-generated method stub

    char yesorno = 'y';

    do {


        System.out.println("Enter 2 numbers");

    ...

    case '*':

            System.out.println(numero1*numero2);

            break;

        default:

            System.out.println("Illegal operation");

        }

        BufferedReader br4=new BufferedReader(new InputStreamReader(System.in));

        yesorno=(char)br4.read();

    }while (yesorno=='y'); 

    ...

...


查看完整回答
反对 回复 2023-08-04
  • 2 回答
  • 0 关注
  • 84 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信