Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

พฤติกรรม Pre-increment และ Post-increment ใน C, C++, Java, และ C#


Pre-increment และ Post-increment ทั้งคู่เป็นออเปอเรเตอร์การเพิ่มค่า (increment operations) Pre-increment operator ใช้เพื่อเพิ่มค่าของตัวแปรบางตัวก่อนใช้มันในนิพจน์ ใน pre-increment ค่าจะถูกเพิ่มขึ้นก่อน แล้วจึงใช้ภายในนิพจน์

ถ้านิพจน์คือ a = ++b; และ b เก็บค่า 5 เริ่มต้น แล้ว a จะเก็บค่า 6 เพราะเพิ่ม b ขึ้น 1 ก่อน แล้วกำหนดค่าให้ a

โค้ดตัวอย่าง C++

#include <iostream>
using namespace std;
int main() {
    int a, b = 15;
    a = ++b;
    cout << a;
}

ผลลัพธ์

16

โค้ดตัวอย่าง C

#include <stdio.h>
int main() {
    int a, b = 15;
    a = ++b;
    printf("%d", a);
}

ผลลัพธ์

16

โค้ดตัวอย่าง Java

public class IncDec {
    public static void main(String[] args) {
        int a, b = 15;
        a = ++b;
        System.out.println("" + a);
    }
}

ผลลัพธ์

16

โค้ดตัวอย่าง C#

using System;
namespace IncDec {
    class Inc {
        static void Main() {
            int a, b = 15;
            a = ++b;
            Console.WriteLine(""+a);
        }
    }
}

ผลลัพธ์

16

Post-increment operator ใช้เพื่อเพิ่มค่าของตัวแปรบางตัวหลังจากใช้มันในนิพจน์ ใน post-increment ค่าจะถูกใช้ภายในนิพจน์ก่อน แล้วค่อยเพิ่มขึ้น 1

ถ้านิพจน์คือ a = b++; และ b เก็บค่า 5 เริ่มต้น แล้ว a จะเก็บค่า 5 เช่นกัน เพราะเพิ่ม b ขึ้น 1 หลังจากกำหนดค่าให้ a แล้ว

โค้ดตัวอย่าง C++

#include <iostream>
using namespace std;
int main() {
    int a, b = 15;
    a = b++;
    cout << a << " " << b;
}

ผลลัพธ์

15 16

โค้ดตัวอย่าง C

#include <stdio.h>
int main() {
    int a, b = 15;
    a = b++;
    printf("%d", a);
    printf("%d", b);
}

ผลลัพธ์

15 16

โค้ดตัวอย่าง Java

public class IncDec {
    public static void main(String[] args) {
        int a, b = 15;
        a = b++;
        System.out.println("" + a);
        System.out.println("" + b);
    }
}

ผลลัพธ์

15 16

โค้ดตัวอย่าง C#

using System;
namespace IncDec {
    class Inc {
        static void Main() {
            int a, b = 15;
            a = b++;
            Console.WriteLine(""+a);
            Console.WriteLine(""+b);
        }
    }
}

ผลลัพธ์

15 16