我对编程还比较陌生,最近开始学习Java,以便转向Android编程。我以为我会创建一个非常简单的计算器来练习,但是看来我的if语句不起作用。
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
//Create new scanner object
Scanner numInput = new Scanner( System.in );
//Enter first number
System.out.println("Please enter the first number: ");
int num1 = numInput.nextInt();
//Enter the second number
System.out.println("Please enter the second number: ");
int num2 = numInput.nextInt();
//Choose the operation to perform (+,-,*,/)
System.out.println("What operation would you like to do?");
System.out.println("Type \"+\" to add.");
System.out.println("Type \"-\" to subtract.");
System.out.println("Type \"*\" to multiply.");
System.out.println("Type \"/\" to divide.");
String opChoice = numInput.nextLine();
//Add
if (opChoice.equals("+")) {
int ans = num1 + num2;
System.out.println("Adding " + num2 + " to " + num1 + " equals " + ans + ".");
}
//Subtract
else if (opChoice.equals("-")) {
int ans = num1 - num2;
System.out.println("Subtracting " + num2 + " from " + num1 + " equals " + ans + ".");
}
//Multiply
else if (opChoice.equals("*")) {
int ans = num1 + num2;
System.out.println("Multiplying " + num2 + " with " + num1 + " equals " + ans + ".");
}
//Divide
else if (opChoice.equals("/")) {
int ans = num1 + num2;
System.out.println("Dividing " + num1 + " by " + num2 + " equals " + ans + ".");
}
}
}
我正在使用Eclipse IDE,并且在要求执行该操作之前,它运行良好。它会显示选项,但不会让我输入任何内容(我一直在用5乘以2进行测试)。
我搜索了类似的问题,并尝试了他们的建议,但似乎仍然行不通。我将不胜感激,我想这可能只是我正在做的一个简单错误,因此,如果这看起来像一个愚蠢的问题,我深表歉意!
编辑:谢谢您的快速回复,伙计们!我很感激。是的,我固定了乘法和除法。:)
问题是nextInt()
不占用(不读取)换行符(按[Enter]时输入的换行符)。解决此问题的一种方法是nextLine()
在每次调用之后nextInt()
:
//Enter first number
System.out.println("Please enter the first number: ");
int num1 = numInput.nextInt();
numInput.nextLine(); // Add this
//Enter the second number
System.out.println("Please enter the second number: ");
int num2 = numInput.nextInt();
numInput.nextLine(); // Add this
解决此问题的另一种方法是使用读取数字nextLine()
(返回String
),然后将其解析为int
:
int num1 = Integer.parseInt(numInput.nextLine());
您不需要添加额外的内容,nextLine()
因为nextLine()
已经被调用的新行字符正在使用新行字符。
另外,如@sotondolphin所建议,您可能要检查您的*
和/
操作。
我正在编写一个简单的算法来求解Euler项目#5,但其中一个if语句不起作用。在findNumber()方法中,更改字段变量“divisibleNum”的if语句不会更改变量的值,因此每次编译时,输出总是1。 我试着回答“能被1到25的所有数字平均整除(无余数整除)的最小正数是多少?” 输出需要是可被1-25整除(包括)的最小正数,但每次只打印1。
你知道我怎么纠正我的代码吗?我想知道是否应该用字符串代替char,但也不能让符号工作。 代码:
它直接在我的网站上找到0个结果,而不是做echo$行有什么想法吗?我希望它从我的数据库(phpmyadmin)中提取,数据库名称是events\u table。
我需要解释一下,为什么执行了while()语句中的if()块。据说:while语句计算表达式,表达式必须返回布尔值。如果表达式的计算结果为true,则while语句将执行while块中的语句。请看一下这个代码: 一旦变量x超过5,不应该将其视为false吗?那么,如果执行块,该如何执行呢?基本上,它似乎为表达式5返回了真正的布尔值=5. 谢谢你的解释!
函数的运行时间的长短是衡量这个函数性能的重要指标,特别是在对比和基准测试中,要得到函数的运行时间,最简单的办法就是在函数执行之前设置一个起始时间,并在函数运行结束时获取从起始时间到现在的时间间隔,这个时间间隔就是函数的运行时间。 在Go语言中我们可以使用 time 包中的 Since() 函数来获取函数的运行时间,Go语言官方文档中对 Since() 函数的介绍是这样的。 func Since(t
我正在练习Python,我想写一个程序来检查当前时间,看看它是否与2:12 pm匹配,并说:所以首先我想要使用模块,但我不知道如何使用? 我的问题是我不知道如何使用时间模块。或者我用的语法对不对? 我的代码: