当前位置: 首页 > 知识库问答 >
问题:

我需要帮助来理解一些关于While循环条件语句和类型转换的基本Java概念

孟佑运
2023-03-14

我只是在试着编一个简单的计算器,它工作得很好...

我现在要做的是包含一个“do while”或“while”循环来重复一个语句,直到用户输入四个基本操作符符号之一。我使用其他方法(if和switch)实现了它,但我想简化它。

此外,我在学习如何在scannerJPane方法中解析字符时也遇到了很多问题。我可以实现使用各种资源在互联网上,但一个简单的方法,将帮助我理解更清楚的逻辑,而不仅仅是实现将是高度赞赏的。

    public class MyCalculator{
    public static void main (String [] args){

    // Let us code a simple calculator
    char OP;
    System.out.println("This is a simple calculator that will do basic calculations such as :\nAddition, Multiplication, Substraction and Division.");

    // Create a scanner object to Read user Input.
    Scanner input = new Scanner(System.in);

    System.out.println("Enter Any positive number followed by pressing ENTER.");
    int firstNum = input.nextInt();

    // Need to Loop the below statement till one of the four (+,-,*,/) operator is entered.

    System.out.println("Enter your choice of OPERATOR sign followed by pressing ENTER.");
    OP = input.next().charAt(0);

    System.out.println("Enter your Second number followed by an ENTER stroke.");
    int secNum = input.nextInt();

    // Various possible Resolution
    int RSum = firstNum+secNum;
    int RSubs= firstNum-secNum;
    int RPro = firstNum*secNum;
    double DPro = firstNum/secNum;

    // Conditional statements for Processing
    Switch (OP){ 
    case '+': System.out.println("The Resulting sum is "+ RSum);
    break;
    case '-': System.out.println("The Resulting sum is "+ RSubs);
    break;
    case '*': System.out.println("The Resulting Product is "+ RPro);
    break;
    case '/': System.out.println("The Resulting Divisional product is "+ DPro);
    break;
    default : System.out.println("Try Again");

        }

    }
}

共有1个答案

蔚弘量
2023-03-14

您可以使用如下内容:

while(scanner.hasNext()) {
  //some code
   int number = scanner.NextInt();
}

但我将按以下方式实现一个计算器:

int num1 = scanner.NextInt();
String op = scanner.Next();
int num2 = scanner.NextInt();

您可以如下所示循环遍历字符串并进行检查:

for (char ch : exampleString.toCharArray()){
  System.out.println(ch);
}

您还可以按如下所示遍历字符串:

for (int i=0; i<examplestring.length(); i++) {
  char c = examplestring.charAt(i);
}

可以循环直到得到+或-,如下所示:

char operator;    
do {
  char operator = scanner.next().get(0);
}while(operator != '+' || operator != '-')

您可以循环并打印错误消息,如下所示:

char operator;
do {
  char operator = scanner.next().get(0);
  if(!isValidOperator(operator)) {
    System.out.println("invalid operator");
  }
}while(!isValidOperator(operator))

public boolean isValidOperator(char operator) {
  if(operator == '+') {
    return true;
  } else if (operator == '-') {
    return true;
  }

  return false;
}
 类似资料:
  • 我试图写一个代码为每个股票价值是75美元或更多添加一个"*"在STK_FLAG列。 ORA-06550:第15行,第21列:PLS-00201:标识符“STK\U FLG”必须声明ORA-06550:第15行,第5列:PL/SQL:SQL语句忽略ORA-06550:第23行,第7列:PL/SQL:ORA-00904:“STK\U FLG”:无效标识符ORA-06550:第17行,第5列:PL/SQ

  • 有一个项目将涉及到sftp文件传输到服务器。我已经尝试使用ftp协议,并选择winscp.exe-sftp作为我的程序来录制。有事件被记录,但没有生成后,我完成了记录。 提前谢了。

  • 声明如下: 我是XSL的新手。我知道href属性需要URI,但是href值如何在上面的语句中解析为URI。此代码是DITA-OT中xhtml插件xsl的一部分。有多个这样的语句。这些是来自根目录的相对路径吗?DITA-OT代码如何解析这些路径?

  • 通常都听到别人说,计算机很牛逼,很聪明,其实计算机一点都不聪明,光是你要跟他沟通,都会气 shi 你,聪明的是在写程序的你。 写程序就是跟计算机沟通,告诉它要做什么。 竟然是这样,那么肯定缺少不了一些沟通逻辑。比如你要告诉计算机在什么情况下做什么?或者在哪个时间点做什么? 这都需要用到逻辑判断。这一章节,主要就是说这个。 目录

  • 很抱歉打扰你们,我是编程新手,一直在这个程序上有问题。 谢了! *********编辑***************我从BMI中删除了int值,但有损转换错误仍然存在。有什么办法解决这个问题吗?

  • 我正在学习java通用编程。我在核心Java(第9版)中看到了这些图表: 我在Java编程综合版第十版简介中看到了这些图表: 但我相信应该是这样的: 有人能告诉我我是否正确吗?