Tags:

กำลังหัดใช้ array อยู่ครับ คือจะค้นหาข้อมูลที่มีอยู่แล้วใน array เทียบกับข้อมูลที่ป้อนเข้าไปใหม่จาก keyboard ว่ามันตรงกันครับ

ทีนี้ตัว subscript (พอดีไม่ทราบว่าภาษาไทยเรียกว่าอะไรอะครับ) ที่จะใช้ในการกำหนดว่าเป็นค่าไหนใน array เนี่ย มันเป็น int แล้วเราก็ต้องให้ค่ามันก่อนใช่มั้ยครับ พอผมให้ค่าเริ่มต้นไปเป็นศูนย์ มันก็เลยหาเจอแต่ตัวแรก หาตัวอื่นๆที่อยู่ใน array ไม่เจอครับ ไม่ทราบว่าต้องทำยังไงครับ โปรดชี้แนะด้วยครับ

Get latest news from Blognone
By: Architec
ContributorWindows PhoneAndroidWindows
on 14 May 2011 - 14:52 #288877

ไม่ได้เขียนแบบจริงจังมาปีกว่าละ

เข้าใจถูกแล้วครับ ตำแหน่งในอาเรย์เป็น int ครับ สำหรับการเปรียบเทียบค่าจากคีย์บอร์ดให้ใช้ .equal เพราะใช้ == ในการเปรียบเทียบค่าไม่ได้ครับ (ไม่ทราบรายละเอียดว่าเพราะอะไร)

if(ตัวแปรรับจากคีย์บอร์ด.equal(อาเรย์[ตำแหน่ง]))

ที่เหลือก็ลูปตามปกติครับ อยากให้คิดอัลกิริทึมเองเพื่อให้เกิดการเรียนรู้+เสริมความจำด้วยครับ (จริงๆผมใช้ list นะรับค่าได้เรื่อยๆจนกว่าหน่วยความจำจะเต็ม)

By: bongikairu
ContributoriPhone
on 14 May 2011 - 15:11 #288882

เค้าเรียก index หรือป่าวครับ? array index ใช้วิธีตามด้านบนเลยครับ

By: billion
ContributoriPhoneAndroid
on 14 May 2011 - 15:34 #288884

ขอบคุณครับ แต่ว่าพอผมลองแล้วขึ้น error ว่า int cannot be dereferenced

ไม่ทราบว่าเกี่ยวด้วยรึป่าวว่า array ตัวที่ประกาศไปเป็น int อะครับ

By: bongikairu
ContributoriPhone
on 14 May 2011 - 15:38 #288890

ถ้าค่าใน array เป็น int และรับค่าจากคีย์บอร์ดแบบ nextInt มาก็ใช้ == เช็คได้เลยครับไม่ต้องผ่าน equal ( แต่ถ้ารับมาแบบอื่นก็ต้อง .equal เอาหน่ะครับ )

By: billion
ContributoriPhoneAndroid
on 14 May 2011 - 15:47 #288896

ใช้ JOptionPane ครับ ไม่ทราบว่าเหมือนกันกับ next int รึป่าว เข้าใจว่าคือ Scanner อะครับ ไม่แน่ใจว่าจะส่งผลด้วยรึป่าว

คือตอนนี้ผมเข้าใจว่าปัญหามันอยู่ตรงที่ว่า เพราะผมกำหนดค่าเริ่มต้นของ array index ให้เท่ากับศูนย์ มันก็เลยไม่ไปอ่านค่าอื่นๆใน array ไม่ทราบว่าเกี่ยวมั้ยครับ

หรือว่าจริงๆแล้ว เรากำหนดค่าเริ่มต้นของ array index ไปเป็นศูนย์แล้วก็จริง แต่ว่าโปรแกรมก็จะอ่านค่าต่อๆไปอยู่ดีครับ

By: Architec
ContributorWindows PhoneAndroidWindows
on 14 May 2011 - 16:02 #288898 Reply to:288896

แปะโค้ดมาเลยครับ

By: billion
ContributoriPhoneAndroid
on 14 May 2011 - 16:09 #288899 Reply to:288898

ท่าทางจาง่ายกว่านะครับ แหะๆ

By: billion
ContributoriPhoneAndroid
on 14 May 2011 - 16:11 #288900

import javax.swing.*;

public class areaCode

{

public static void main(String args[])
{

    int aCode, x;

    String areaString;

    int areaCodes[] = {219, 309, 425, 512, 630, 717, 870, 952, 815, 321}; 

    areaString = JOptionPane.showInputDialog("Enter area code: ");
    aCode = Integer.parseInt(areaString);   

    while(aCode != 0)                                       
    {
        x = 0;
        if (aCode == areaCodes[x])
        {
            System.out.println("Area code found");
        }
        else
        {                   
            System.out.println("Area code not found");
        }

        areaString = JOptionPane.showInputDialog("Enter area code or 0 to exit: ");
        aCode = Integer.parseInt(areaString); 
    }
}

}

By: Architec
ContributorWindows PhoneAndroidWindows
on 14 May 2011 - 16:37 #288910 Reply to:288900

x เท่ากับ 0 โดดๆเวลาเปรียบเทียบข้อมูลมันก็ชี้ index ตัวแรกอยู่อย่างนั้นล่ะ

for(int x=0;x<areaCodes.length;x++)
แล้วค่อยมา if คงเข้าใจนะ

By: billion
ContributoriPhoneAndroid
on 14 May 2011 - 18:51 #288952 Reply to:288910

โอ้ว!!! ได้แล้วครับ สุดยอดเลยครับ ขอบคุณมากครับ ขอบคุณท่านอื่นๆด้วยนะครับที่ชี้แนะ ^^

By: tuckclub on 14 May 2011 - 16:42 #288911 Reply to:288900

จากโค้ดที่คุณให้มา ผมเอามาเขียนใหม่ได้แบบนี้ครับ ทำงานเหมือนกันทุกประการ

import javax.swing.*;

public class areaCode {
    public static void main(String args[]) {
        int aCode;

        String areaString;

        int areaCodes[] = { 219 };

        areaString = JOptionPane.showInputDialog("Enter area code: ");
        aCode = Integer.parseInt(areaString);

        while (aCode != 0) {
            if (aCode == areaCodes[0]) {
                System.out.println("Area code found");
            } else {
                System.out.println("Area code not found");
            }

            areaString = JOptionPane.showInputDialog("Enter area code or 0 to exit: ");
            aCode = Integer.parseInt(areaString);
        }
    }
}
By: tuckclub on 14 May 2011 - 16:47 #288913 Reply to:288900

ย่นลงไปอีกซักรอบก็จะได้แบบนี้

import javax.swing.*;

public class areaCode {
	public static void main(String args[]) {
		int aCode;

		String areaString;

		int areaCodes[] = { 219 };

		areaString = JOptionPane.showInputDialog("Enter area code: ");
		aCode = Integer.parseInt(areaString);

		while (aCode != 0) {
			if (aCode == 219) {
				System.out.println("Area code found");
			} else {
				System.out.println("Area code not found");
			}

			areaString = JOptionPane.showInputDialog("Enter area code or 0 to exit: ");
			aCode = Integer.parseInt(areaString);
		}
	}
}
By: billion
ContributoriPhoneAndroid
on 14 May 2011 - 19:00 #288957 Reply to:288913

ผมลองเอา code ไป compile ดูแล้วครับ ทำงานเหมือนกันทุกประการจริงครับ

คือผมติดตรงที่ว่ามี value มากกว่าหนึ่งจำนวน อยู่ใน array หน่ะครับ
ใน areaCodes[] มีอยู่สิบจำนวน

ทีนี้ตอนแรกผมทำให้โปรแกรมไปเทียบ array index ตัวอื่นๆไม่ได้หน่ะครับ

แต่ก็ขอบคุณนะครับ พอเห็น code ผมถึงเพิ่งรู้ว่ามาเอาใส่เลยตรงๆได้เลยด้วย

By: tuckclub on 15 May 2011 - 00:07 #289022 Reply to:288957

จุดประสงค์ที่ผมเขียนโค้ดสองอันนี้ให้คุณดู เพราะผมกำลังพยายามชี้โดยอ้อมๆ 2 สเต็ป ให้คุณเห็นว่าโค้ดคุณมีปัญหาที่ตรงไหน

การบอก solution ไปตรงๆ สิ่งที่คุณจะได้รับไปเต็มๆ คือ "คำตอบ" ครับ
แต่คุณอาจจะไม่ได้ "หัด" มากพอ ตามเจตนารมณ์ที่คุณตั้งกระทู้นี้ขึ้นมา

ดีใจด้วยครับ ที่ตอนนี้มันใช้ได้แล้ว

By: billion
ContributoriPhoneAndroid
on 16 May 2011 - 08:20 #289375 Reply to:289022

อ๋อ อย่างนี้นี่เอง เข้าใจแล้วครับ ขอบคุณครับ เหมือนกับว่าผมไม่ได้ใช้ array เลย แต่ใช้ค่าของตัวแรกอย่างเดียว ก็เลยเหมือนเอามาเทียบตรงๆก็เหมือนกันใช่มั้ยครับ
ตอนนี้จำได้ขึ้นใจเลยครับ เพราะก่อนจะมาตั้งกระทู้นั่งงงอยู่หลายชั่วโมงมาก

By: n3tr
ContributoriPhoneBlackberryWindows
on 15 May 2011 - 00:28 #289029 Reply to:288900

ไม่รู้ว่าผมเข้าใจถูกหรือเปล่านะครับ

แต่ Code นี้ มันไม่ได้เอาค่า Input มาเทียบกับทุกค่าใน Array นิครับ

เพราะทุกรอบของ while loop มันก็ไปรับค่า Input มาใหม่ ทั้งๆ ที่พึ่งเทียบกับค่าใน Array ไปค่าเดียว

By: bongikairu
ContributoriPhone
on 15 May 2011 - 02:58 #289087 Reply to:289029

ถ้าเรารู้ว่าโค้ดแต่ละส่วนทำงานยังไงแล้ว เราก็จับมายำรวมกันได้ครับ เอาโค้ดเดิม โค้ดใหม่ที่มีคนช่วย มารวมๆ กันก็ได้แล้ว (แต่ต้องเข้าใจด้วยว่าแต่ละส่วนมันทำอะไร)

By: neizod
ContributorTraineeIn Love
on 15 May 2011 - 15:25 #289232 Reply to:288900
neizod's picture

คราวหน้าใช้ syntax hilighter ด้วยก็ดีครับ ^__^

{syntaxhighlighter brush:YourCodeLanguage;}
import tool

if(code):
  print(hilight(code))
else
  print(code)

def hilight(text):
  return tool.syntaxhilighter(text)
{/syntaxhighlighter}

จะได้ผลแบบนี้ออกมาครับ

(อย่าลืมเปลี่ยนค่าตรง YourCodeLanguage ให้เป็นภาษาที่ใช้นะครับ)
{syntaxhighlighter brush:python;}
import tool

if(code):
print(hilight(code))
else
print(code)

def hilight(text):
return tool.syntaxhilighter(text)
{/syntaxhighlighter}

By: billion
ContributoriPhoneAndroid
on 16 May 2011 - 17:02 #289494 Reply to:289232

เพิ่งทราบว่าทำงี้ได้ด้วย เจ๋งจริงๆ ขอทดสอบบ้างครับ

{syntaxhighlighter brush:java;}

while(aCode != 0)
{
found = false;
for(int x=0; x<areaCodes.length; x++)
{
if (aCode == areaCodes[x])
{
found = true;
}
}
}

{/syntaxhighlighter}

By: UltimaWeapon
Windows PhoneRed HatWindowsIn Love
on 15 May 2011 - 17:59 #289268
UltimaWeapon's picture

ทดสอบ
{syntaxhighlighter brush:cpp;}
int CWindowEx::MessageBox(const wchar_t *pszFormat, const wchar_t *pszCaption, UINT nType, ...)
{
va_list args;
int nRet;

// Make Argument
va_start(args, nType);
nRet = MessageBox(pszFormat, pszCaption, nType, args);
va_end(args);

return nRet;

}
{/syntaxhighlighter}

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 16 May 2011 - 02:56 #289366 Reply to:289268
PaPaSEK's picture

บังอาจ!!!!

เอา Code C มาแปะในกระทู้ Java ได้เยี่ยงไร

555 ... ขำกลบเกลื่อน ... สอนวิธีแปะ Code มั่งสิครับ

By: mementototem
ContributorJusci&#039;s WriterAndroidWindows
on 16 May 2011 - 08:35 #289377 Reply to:289366
mementototem's picture

คุณ neizod บอกไว้ด้านบนแล้วครับ

ป.ล. ของคุณ neizod ก็โค้ด python นะนั่น


Jusci - Google Plus - Twitter

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 16 May 2011 - 10:48 #289395 Reply to:289377
PaPaSEK's picture

โค้ดงูเหลือมเหรอครับ ผมไม่เข้าใจ

ฮ่า ฮ่า แซวเล่นครับ พอดีตื่นสายอาเกรียนเลยกำเริบนิดหน่อย

ขอบคุณครับ ไม่ทันอ่าน คห คุณ neizod

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 16 May 2011 - 17:50 #289500 Reply to:289366
PaPaSEK's picture

ทดสอบ

ผมใช้ Brush เป็น JavaScript,js,javascript แล้วมีปัญหาแฮะ มันบอกว่าไม่มี Brush ชื่อนี้ (เป็น Alert ด้วย JavaScript)

By: neizod
ContributorTraineeIn Love
on 17 May 2011 - 14:55 #289837 Reply to:289500
neizod's picture

ใช้ jscript - -"

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 17 May 2011 - 15:20 #289856 Reply to:289837
PaPaSEK's picture

ขอบคุณครับ T_T ลองเปลี่ยนไปเปลี่ยนมาตั้งนาน