如何使用等效线性运算符“ =”

时间:2018-10-24 11:08:40

标签: java

我是编程语言的新手,

如何在Java中使等效线性化

  1. 我有3 * a = 15,如果我定义了n = 15,我怎么能找到a的值?
  2. 我有2a + 3b = 8,如何找到ab的值?

我尝试过

import javax.swing.*;

public class Linear{

  public static void main(String[] args){

    String str = JOptionPane.showInputDialog(null, "Insert the value N = ");

    int n = Integer.parseInt(str);

    for (int x=1; x<=10; x++){
      if ((2*x) = n){
        JOptionPane.showInputDialog("x = ", x); 
      }
    }

  }
}

编译后,我得到

Linear.java:12: error: unexpected type
      if ((2*x) = n){
            ^
  required: variable
  found:    value
1 error

谢谢。

3 个答案:

答案 0 :(得分:2)

您的专线

import("src/app/apis/mocks/consumer-list.dev")

是错误的。 if ((2*x) = n){ 运算符表示一个赋值(将变量设置为给定值)。如所写,该行正在尝试将右侧的值(=)分配给左侧的“变量”。但是,由于左侧有n,它不是变量,而是表达式,因此编译器会抱怨。

您要检查是否相等,而不是创建分配。正确的行是(使用2*x):

==

答案 1 :(得分:1)

您应该使用==比较两个值,并使用=为变量分配一个值。

因此,您应该替换

if ((2*x) = n){

使用

if ((2*x) == n){

答案 2 :(得分:1)

对于问题2,您可以简单地尝试a和b的循环并测试方程式:

    for (int a = 0; a < 10; a++) {
        for (int b = 0; b < 10; b++) {
            if (2 * a + 3 * b == 8) {
                System.out.println("Found solution a = " + a + " and b = " + b);
            }
        }
    }