如何在同一个现有变量之上更改变量的值 - 多次?(爪哇)

因此,我挑战自己创建一个包含用户输入系统的简单计算器。


第一段代码(如下所示)询问用户他们的号码是多少,并将其存储在一个名为“num”的双精度数中。


然后程序会询问用户他们想要做什么(加、减、乘、除或显示答案),我把它放在一个while 循环中,因为我认为他们可能想要处理超过 2 个数字. 如果用户想要答案,那么他们会选择那个,while 循环将停止。


我的问题是,我希望程序能够使用之前的现有数字来获取数字并进行加减等操作。本质上,我希望变量的值反复改变,但我只是不知道该怎么做。


例如,如果用户从数字 2 开始,然后加 2,然后乘以 4,则答案应该是 16。我只是无法让我的代码这样做。


考虑到我已经对其进行了测试,我意识到我的代码是错误的,但我无法完全理解我需要做什么。我觉得我已经很接近了,但是任何事情都可以进行,因为我对 Java 还是有点陌生。


任何帮助,将不胜感激!谢谢!


我认为此链接可以将您带到该站点进行编辑,而不是:https ://repl.it/@ANGELRAMIREZ6/Basic-Calculator


这是我的代码:


import java.util.Scanner;


class Main {


  public static void main(String args[]) {


    Scanner userWhatWillDo = new Scanner(System.in);

    Scanner userNum = new Scanner(System.in);


    double num, answer;

    int what, numOfNums, keepGoing = 1;


    while (keepGoing == 1) {


       System.out.print("Enter a number: ");

       num = userNum.nextDouble();


       System.out.println("1=Add; 2=Subtract; 3=Multiply; 4=Divide; 5=Answer");

       what = userWhatWillDo.nextInt();


       switch(what) {

         case 1:

            num += num;

            break;


        case 2:

            num -= num;

            break;


        case 3:

            num *= num;


        case 4:

            num /= num;

      }


      if(what == 5) {

        keepGoing = 2;

        System.out.println(answer);

      }

  }

 }

}


白衣非少年
浏览 144回答 3
3回答

莫回无

感谢所有贡献并帮助调整我的代码的人,我设法让我的第一个计算器工作!这是非常基础的,真的可以做很多工作;这么多的工作,但基本已经完成了!它本质上是一个工作计算器!虽然,它只能做加法、减法、乘法和除法。它不能做更多的事情。如果有人想看看我现在拥有的东西,我会发布代码的链接,以便您可以根据需要运行它。再次感谢大家。链接:https ://repl.it/@ANGELRAMIREZ6/Basic-Calculator-1Fixed(我如何修复我的代码 - 解释) - 好的,回顾我的第一段代码,我确实有一些不必要的扫描仪,我最终取出了(为 Thomas Kläger 和 Steven Spungin 欢呼)。之后,我修复了计算的完成方式。最初,我无法理解它们应该如何工作,所以我非常笨拙地让它们都与同一段代码相关:num += num,本质上是num = num + num(对 tshimkus 的支持, Daniel Rivero Capellan 和 Steven Spungin 让我看到了这个愚蠢的错误。我把它改成了answer += num,这更有意义。修正计算后,我认为我的代码可以工作,但我停下来,因为我得到的计算是完全随机的,根本不正确。或者,更确切地说,程序在做我错误地编码它要做的事情时做的事情是正确的。特别感谢 Steven Spungin,他一刀切,帮助我理解问题出在我的价值观被存储的方式上。在循环不断询问要使用哪些数字以及将对它们执行什么操作(加法、减法等)之前,我提示用户他们想从哪个数字开始并设置该值来回答,然后我运行循环。在此循环中,由同一提示输入的任何数字Enter a number都将存储到num变量中,并最终与初始数字相加、相减、相乘或相除,其值为answer。从逻辑/数学上讲,这是有道理的,考虑到第一个值是答案,后面的数字是num,当您查看此代码时,这很有意义:answer += num。总而言之,这是一个简单的程序,启动起来有点棘手(至少对我而言)。我向所有 Java 编码初学者推荐这个小项目。该程序远未完成,我确信代码可以更有效地执行,但我会继续使用我的 char = W; 对于这个。(我什至添加了一个“除以零”错误。你自己试试吧!)非常感谢所有帮助过的人!如果链接不起作用,这是我的工作代码:导入 java.util.Scanner;扫描仪 sc = new Scanner(System.in);双数= 0,答案= 0;int 什么,keepGoing = 1,keepAsking = 1;System.out.println("请输入一个数字:"); 答案 = sc.nextDouble();而(继续== 1){  System.out.println("1=Add; 2=Subtract; 3=Multiply; 4=Divide; 5=Answer");  what = sc.nextInt();  if (what != 5) {      do {      System.out.println("Enter a number: ");      num = sc.nextDouble();      keepAsking = 2;    }  while (keepAsking == 1);  }  switch(what) {    case 1:    answer += num;    break;    case 2:    answer -= num;    break;    case 3:    answer *= num;    break;    case 4:    answer /= num;    break;  }  if (what == 4 && answer == 0) {    System.out.println("ERROR. Cannot divide by zero. Try again.");    keepGoing = 2;  }    if(what == 5) {    keepGoing = 2;    keepAsking = 2;    System.out.println(answer);    }}

当年话下

使用 println 而不是 print 来刷新输出,或者手动刷新您只需要 1 台扫描仪初始化answer为 0开关中的线路应该改变answer      case 1:       answer += num;       break;break在每个使用case还:检查divide by 0捕获无效输入错误Scanner sc = new Scanner(System.in);double num, answer=0;int what, numOfNums, keepGoing = 1;while (keepGoing == 1) {    System.out.println("Enter a number: ");    num = sc.nextDouble();    System.out.println("1=Add; 2=Subtract; 3=Multiply; 4=Divide; 5=Answer");    what = sc.nextInt();    switch(what) {      case 1:      answer += num;      break;      case 2:      answer -= num;      break;      case 3:      answer *= num;      break;      case 4:      answer /= num;      break    }    if(what == 5) {      keepGoing = 2;      System.out.println(answer);    }}要修复您的计算逻辑:询问号码并分配给answer开始你的循环要求操作,然后编号。

慕尼黑的夜晚无繁华

Appart 其他用户已经注意到了。错误的 switch case 语句和同一流中的多个读取器。我建议以下。您必须在使用变量 answer 之前对其进行初始化。例如到 0。Second num+=num手段num = num + num和你想要的是将运算结果累积到答案中,例如,answer = answer+num。这可以通过answer+=num.通过此更改,您的计算器应该可以正常工作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java