JavaRush /Blog Java /Random-VI /Các phép toán số trong Java

Các phép toán số trong Java

Xuất bản trong nhóm
Xin chào! Hôm nay chúng ta sẽ xem xét một chủ đề rất quan trọng, đó là các phép toán số trong Java . Những con số ở khắp mọi nơi trong lập trình. Nếu tìm hiểu sâu hơn về chương trình giảng dạy ở trường, bạn sẽ nhớ rằng tất cả thông tin trên máy tính đều được trình bày dưới dạng số - sự kết hợp của số 0 và số 1 - còn được gọi là mã nhị phân. Các phép toán số trong Java - 2Có rất nhiều phép tính với các con số trong lập trình, vì vậy chúng ta sẽ xem xét những phép tính quan trọng nhất bằng các ví dụ :)

Các phép tính toán học

Hãy bắt đầu với điều đơn giản nhất - với các phép tính số học. Đây là các phép cộng (+ dấu), phép trừ (-), phép nhân (*) và phép chia nổi tiếng (/).
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = 33;

       System.out.println(x+y);
       System.out.println(x-y);
       System.out.println(x*y);
       System.out.println(x/y);
   }
}
Đầu ra của bảng điều khiển:

1032
966
32967
30
Bạn đã sử dụng tất cả điều này. Bạn có thể thêm một phép toán cho chúng %- phần còn lại của phép chia.
public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 33%2;
       System.out.println(y);
   }
}
Đầu ra của bảng điều khiển:

1
Trong ví dụ này, chúng ta chia 33 cho 2. Kết quả là chúng ta nhận được 16 và vẫn còn một “đuôi” thừa không chia hết cho 2 - một. “Cái đuôi” này sẽ là kết quả của thao tác “phần dư của phép chia”. Java (cũng như toán học) triển khai các toán tử so sánh . Bạn có thể cũng biết họ từ trường học:
  • bằng ( ==)
  • hơn ( >)
  • ít hơn ( <)
  • lớn hơn hoặc bằng ( >=)
  • ít hơn hoặc bằng ( <=)
  • không công bằng ( !=)
Ở đây cần chú ý đến một điểm quan trọng mà nhiều người mới bắt đầu mắc lỗi. Phép toán “bằng” được viết là ==, và không có một dấu =. Ký hiệu đơn vị =trong Java là toán tử gán, trong đó một biến được gán một số, chuỗi hoặc giá trị của một biến khác. Các phép toán số trong Java - 3
public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 999;
       System.out.println(x=y);// expect false to be printed to the console
   }
}
Đầu ra của bảng điều khiển:

999
Ối! Đây rõ ràng không phải là kết quả mà chúng tôi mong đợi. Đây là một loại dữ liệu hoàn toàn khác: chúng tôi dự kiến ​​sẽ thấy boolean, nhưng lại nhận được một con số. Điều này là do trong ngoặc đơn chúng ta có thao tác gán chứ không phải phép so sánh. x=y Giá trị y(999) được gán cho biến xvà sau đó chúng tôi in nó xra bảng điều khiển. Tùy chọn đúng:
public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 999;
       System.out.println(x==y);
   }
}
Đầu ra của bảng điều khiển:

false
Bây giờ chúng ta đã so sánh chính xác 2 số rồi! :) Một đặc điểm khác của phép gán ( =) là nó có thể được thực hiện theo kiểu “xâu chuỗi”:
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = 33;
       int z = 256;

       x = y = z;
       System.out.println(x);
   }
}
Đầu ra của bảng điều khiển:

256
Hãy nhớ: bài tập được thực hiện từ phải sang trái. Biểu thức này ( x = y = z) sẽ được thực hiện theo các bước:
  • y = z, tức là y = 256
  • x = y, tức là x = 256

Hoạt động đơn nhất

Chúng được gọi là "đơn nhất" từ từ "uno" - "một". Họ nhận được tên này bởi vì, không giống như những cái trước, chúng được thực hiện trên một số chứ không phải trên một số. Bao gồm các:
  • Điểm trừ đơn nhất. Nó đảo ngược dấu của số.

    public class Main {
    
       public static void main(String[] args) {
    
           int x = 999;
    
           // change the sign for the first time
           x = -x;
           System.out.println(x);
    
           // change the sign a second time
           x= -x;
           System.out.println(x);
       }
    }

    Đầu ra của bảng điều khiển:

    
    -999
    999

    Chúng tôi đã sử dụng dấu trừ đơn nhất hai lần. Kết quả là số của chúng ta lúc đầu trở thành âm, sau đó lại dương!

  • Tăng ( ++) và giảm ( --)

    Một thao tác ++tăng một số và một thao tác --giảm số đó đi cùng một đơn vị.

    public class Main {
    
       public static void main(String[] args) {
    
           int x = 999;
           x++;
           System.out.println(x);
    
           x--;
           System.out.println(x);
       }
    }

    Đầu ra của bảng điều khiển:

    
    1000
    999
Dạng ký hiệu này có thể quen thuộc với bạn nếu bạn đã từng nghe nói đến ngôn ngữ C++. Với cái tên thú vị như vậy, những người tạo ra nó đã truyền đạt ý tưởng của họ: “C++ là một phần mở rộng của ngôn ngữ C”. Một phiên bản cải tiến phổ biến của Notepad được gọi là Notepad++ Tâm điểm. Có hai loại phép toán tăng và giảm: hậu tố và tiền tố. x++- ký hiệu hậu tố ++x- ký hiệu tiền tố Sự khác biệt cơ bản là gì nếu bạn đặt dấu cộng và dấu trừ trước hoặc sau số? Hãy xem trong một ví dụ:
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = x++;
       System.out.println(y);
   }
}
Đầu ra của bảng điều khiển:

999
Có điều gì sai không! Chúng tôi muốn tăng thêm x1 và gán giá trị mới cho biến y. Nghĩa là, y phải bằng 1000. Nhưng chúng ta có một kết quả khác - 999. Hóa ra là nó xkhông tăng và thao tác tăng dần không hoạt động? Nó hoạt động như thế nào. Để xác minh điều này, hãy thử in x ra bảng điều khiển ở cuối :)
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = x++;
       System.out.println(y);
       System.out.println(x);
   }
}
Đầu ra của bảng điều khiển:

999
1000
Trên thực tế, đó là lý do tại sao thao tác hậu tố được gọi như vậy: nó được thực hiện sau biểu thức chính. Nghĩa là, trong trường hợp của chúng ta: int y = x++; đầu tiên nó được thực thi y = x(và biến y sẽ được gán giá trị ban đầu x) và chỉ sau đó x++ .. Điều gì sẽ xảy ra nếu chúng ta không hài lòng với hành vi này? Bạn cần sử dụng ký hiệu tiền tố:
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = ++x;
       System.out.println(y);
   }
}
Trong trường hợp này, nó sẽ hoạt động trước ++x và chỉ sau đó. y = x; Sự khác biệt này cần được ghi nhớ ngay để không mắc lỗi trong một chương trình thực, trong đó mọi hành vi có thể bị đảo lộn vì điều này :)

Hoạt động kết hợp

Ngoài ra, trong Java còn có cái gọi là thao tác kết hợp. Họ sử dụng kết hợp hai hoạt động:
  • Phân công
  • phép tính số học
Điều này bao gồm các hoạt động:
  • +=
  • -=
  • *=
  • /=
  • %=
Hãy xem một ví dụ:
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = 33;

       x += y;
       System.out.println(x);
   }
}
Đầu ra của bảng điều khiển:

1032
x += ycó nghĩa x = x + y. Để cho ngắn gọn, hai ký tự liên tiếp được sử dụng. Điều này cũng hoạt động với sự kết hợp của -=, *=/=.%=

Các phép toán logic

Ngoài các phép toán trên số, Java còn có các phép toán trên các biến Boolean - truefalse. Các thao tác này được thực hiện bằng cách sử dụng các toán tử logic
  • !- Toán tử “KHÔNG”. Đảo ngược giá trị của biến boolean

    public class Main {
    
       public static void main(String[] args) {
    
           boolean x = true;
           System.out.println(!x);
       }
    }

    Đầu ra của bảng điều khiển:

    
    false

  • &&— toán tử “AND”. Chỉ trả về một giá trị truenếu cả hai toán hạng đều là true.

    public class Main {
    
       public static void main(String[] args) {
    
           System.out.println(100 > 10 && 100 > 200);
           System.out.println(100 > 50 && 100 >= 100);
       }
    }

    Đầu ra của bảng điều khiển:

    
    false
    true

    Kết quả của thao tác đầu tiên là false, vì một trong các điều kiện sai, cụ thể là 100 > 200. Toán tử yêu cầu tất cả các điều kiện phải đúng (chẳng hạn như ở dòng thứ hai) &&để trả về .true

  • ||- Toán tử “HOẶC”. Trả về truekhi ít nhất một trong các toán hạng đúng.

    Ở đây, ví dụ trước của chúng tôi sẽ hoạt động khác:

    public class Main {
    
       public static void main(String[] args) {
    
           System.out.println(100 > 10 || 100 > 200);
       }
    }

    Đầu ra của bảng điều khiển:

    
    true

    Выражение 100 > 200 по-прежнему ложно, но оператору “or” вполне достаточно, что первая часть (100 > 10) является истинной.

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION