我正試圖在Java上編寫一個簡單的計算器程序。我的第一個計算器程序沒有任何問題註冊表示運算符爲真或假的布爾標誌(它只處理加法和減法),但是當我實現了乘法和除法到布爾值時,所有東西都被註冊爲真,因此所有列出了每項操作的結果。在Java中檢查標誌「if(flag = true)」是否真的如此?
package com.arrdude.jason;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.lang.Math;
public class RegularCalculator {
public static void main(String[] args) {
int var1 = 0;
int var2 = 0;
int operator = 0;
boolean isAdd=false, isSub=false, isMult=false, isDiv=false;
try{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println ("Enter the first number");
var1=Integer.parseInt(br.readLine());
System.out.println ("Enter the second number");
var2=Integer.parseInt(br.readLine());
System.out.println ("Which function do you wish you use? Enter 1 for addition, 2 for subtraction, 3 for multiplication, 4 for division");
operator=Integer.parseInt(br.readLine());
}
catch(NumberFormatException ne) {
System.out.println("Invalid number" + ne);
System.exit(0);
}
catch(IOException ioe) {
System.out.println ("IO Error" + ioe);
System.exit(0);
}
if (operator==1){
isAdd=true;
}
else{
isAdd=false;
}
if (operator==2){
isSub=true;
}
else{
isSub=false;
}
/*if (operator==3){
isMult=true;
}
else {
isMult=false;
}
if (operator==4){
isDiv=true;
}
else {
isDiv=false;
}
*/
if(isAdd=true) {
int result = var1 + var2;
System.out.println("The result is " + result);
}
if(isSub=true) {
int result = var1 - var2;
System.out.println("The result is " + result);
}
if(isMult=true) {
int result = var1 * var2;
System.out.println ("The result is " + result);
}
if(isDiv=true) {
int result = var1/var2;
System.out.println("The result is " + result);
}
}
}
如果有人能理解爲什麼會發生這種情況,那會很好。我對Java很新,所以我可能忽略了一些不一定看起來不合適的事情。如果你運行這個程序,你應該知道我遇到了什麼樣的問題。
我* *相當一定的編譯器警告這個......,如果是這樣,可恥的...... – 2012-03-19 21:03:42