"第一个类型为int,第二个类型为boolean" java的

时间:2013-12-09 00:30:38

标签: java

所以我只是在玩一些我学过的东西,制作一些毫无意义的计算器。在有人说之前,我知道这可以更简单地完成!

我在我的while语句中遇到这个错误(二元运算符'||'的第一个类型的错误操作数类型:int,second type:boolean“)

它也引发了

的问题
int AA = A + B;
int AB = A * B;
int AC = A / B;

说不能找到符号。

class cases{ //1-4  sums with cases, delete after//
  public static void main(String args[]){

    System.out.println("Welcome to a pointless calculator.");

      int A = Integer.parseInt(args[0]);
      int B = Integer.parseInt(args[1]);
      switch (A){
        case 1:
          System.out.print("You entered 1");
          break;
        case 2:
          System.out.print("You entered 2");
          break;
        case 3: 
          System.out.print("You entered 3");
         break;
        case 4:
          System.out.print("You entered 4");
      }
      while ( A || B > 4){
        System.out.print("please enter numbers 1-4");
        break;


      }
      switch (B) {
        case 1:
          System.out.println(" and 1");
          break;
        case 2:
          System.out.println(" and 2");
          break;
        case 3: 
          System.out.println(" and 3");
        break;
        case 4:
          System.out.println(" and 4");
      }

      }
      {

        int AA = A + B;
        int AB = A * B;
        int AC = A / B;


        System.out.print("the answers added = ");
        System.out.println(AA);
        System.out.print("the answers multipled = ");
        System.out.println(AB);
        System.out.print("the answers divided = "); 
        System.out.println(AC);



      }
      }

2 个答案:

答案 0 :(得分:3)

问题在于:

while ( A || B > 4){

这个表达方式如下:

while (
    A
    ||
    B > 4
){

A的类型为int,但您将其视为boolean。你不能用Java做到这一点。你可能意味着:

while ( A > 4 || B > 4){

代码中可能还有其他问题。例如,您的代码末尾没有与任何内容相关联的块。我认为在Java中最终成为一个实例初始化程序块,但坦率地说,我认为你需要退一步并完成一些教程。

答案 1 :(得分:2)

while内的条件表达式需要解析为boolean||运算符的两个操作数需要求值为boolean。请参阅here

这个

  while ( A || B > 4){

在语法上不正确。

此时还在代码中

...
  }
  {

    int AA = A + B;
    int AB = A * B;
    int AC = A / B;


    System.out.print("the answers added = ");
    System.out.println(AA);
    System.out.print("the answers multipled = ");
    System.out.println(AB);
    System.out.print("the answers divided = "); 
    System.out.println(AC);



  }
  }

您正在关闭main方法块并启动实例初始化程序。此时AB已不在范围内。

如果您适当地缩进括号,您将看到块的结束位置。