Day 4 [This is Questions of ABAP Certification.]
data: f1(12) type c value ‘Test Variant’,
f2(6) type c,
f3(8) type c.Move: f1 to f2,
f2 to f3.
What do f1, f2, and f3 contain after executing the above code?
a) f1: ‘Test Variant’
f2: ‘ariant’
f3: ‘ ariant’
b) f1: ‘Test Variant’
f2: ‘ariant’
f3: ‘ Variant’
c) f1: ‘Test Variant’
f2: ‘Test V’
f3: ’st Varia’
d) f1: ‘Test Variant’
f2: ‘Test V’
f3: ‘Test V ‘
e) f1: ‘Test Variant’
f2: ‘Test V’
f3: ‘Test Var’
Answer
Answer d) f1: ‘Test Variant’
f2: ‘Test V’
f3: ‘Test V ‘
เราลองมาดูการทำงานของ Code นะครับ
data: f1(12) type c value ‘Test Variant’,
f2(6) type c,
f3(8) type c.
กำหนดตัวแปรให้กับฟิลด์ f1 โดยที่ f1 เป็นตัวแปรประเภท Character มีขนาด 12 ตัวอักษร โดย ให้ค่าเริ่มต้น คือ Test Variant
กำหนดตัวแปรให้กับฟิลด์ f2 โดยที่ f2 เป็นตัวแปรประเภท Character มีขนาด 6 ตัวอักษร โดย ให้ค่าเริ่มต้น คือ ค่าว่าง
กำหนดตัวแปรให้กับฟิลด์ f3 โดยที่ f3 เป็นตัวแปรประเภท Character มีขนาด 8 ตัวอักษร โดย ให้ค่าเริ่มต้น คือ ค่าว่าง
Move: f1 to f2, “Move คือการให้ค่าตัวแปร (Value Assignment)
f2 to f3.
คำสั่ง Move: f1 to f2,
f2 to f3.
มีค่าเท่ากับคำสั่ง Move f1 to f2.
Move f2 to f3.
สาเหตุเกิดจากการ Combining Statement เป็นการรวมกลุ่มของคำสั่งที่ใช้เหมือนกันให้เหลือเพียงหนึ่งคำสั่ง เพื่อเป็นการประหยัดพื้นที่ของโปรแกรม
สามารถทำ Combining Statement โดยใช้เครื่องหมาย : ร่วมกับ,
คำสั่ง Move: f1 to f2. นั้นเป็นการเอาค่า f1 ให้ f2
ดังนั้น f1 = ‘Test Variant’
f2 = ‘Test V’ “จะสังเกตุได้ว่า ค่า f2 ที่ได้มานั้นไม่เท่ากับค่า f1 เพราะ f2 สามารถเก็บตัวอักษรได้แค่ 6 ตัวอักษร
Move: f2 to f3. นั้นเป็นการเอาค่า f2 ให้ f3
ดังนั้น f1 = ‘Test Variant’
f2 = ‘Test V’
f3 = ‘Test V ’ “จะสังเกตุได้ว่า ค่า f3 ที่ได้มานั้นไม่เท่ากับค่า f2 เพราะ f3 สามารถเก็บตัวอักษรได้ 8 ตัวอักษร ซึ่งมากกว่าค่า f2 ที่ป้อนมาแค่ 6 ตัวอักษร ระบบจึง ใส่ค่าว่างให้ที่ตำแหน่งตัวอักษรที่ 7 และ 8
ดังนั้นคำตอบก็คือ ข้อ d) ครับ