עבור לתוכן

עזרה בניסוח משפט תנאי JAVA

Featured Replies

פורסם

שלום לכולם

אני צריך לנסח משפט תנאי שיבדוק אם הקלט חוקי (הקטל הוא String)

קלט חוקי הוא קלט:

1)לא ריק

2)לא null

3)אסור שיכיל רק מספרים (יכול להכיל אותיות ומספרים ביחד)

4)חייב להכיל אותיות (בכל שפה שקימת)

זה מה שכתבתי אבל זה לא עובד :(



boolean text = false;

for(int i=0;i<add.length();i++)
{
if(!((add.charAt(i)>=0) && !(add.charAt(i)<=9)))
{
text=true;
}


if((add.equals("")) || (add.equals(null)))
{
text=false;
}




}


if(text=false)
{
System.out println("NO!!!");
}

פורסם

היי,

שני דברים:

1. חסר לך = בשורה האחרונה.

2. שים לב, עם ה-string הוא null אין טעם לבדוק את זה כל פעם בלולאה. הייתי דווקא מתחיל עם מקרה קצת זה

if ( add.equals == "" ) System.out.println("no...) else

ואז ממשיך אם שאר התוכנית

3. באופן כללי מאוד כדאי להקפיד על הזחה נכונה, במיוחד כשכותבים תנאים כי זה עושה סדר בראש, איזה תנאי בה לפני מה, מה בתוך הלולאה ומה לא..

בהצלחה

פורסם

כמו שנאמר הבדיקה אם המחרוזת שונה מ null צריכה להתבצע ראשונה, במידה והמחרוזת אכן null אין אפשרות לגשת לאף אחת מהפונקציות של האובייקט ולכן אתה תקבל null exceptions (לדוגמא הפונקציה הראשונה שאתה מנסה לקרוא לה היא length)

בנוסף לא זאת הדרך לבדוק את משהו הוא null :

add.equals(null) 

כי שוב, במידה והאובייקט באמת null אין לו יכולת לקרוא לפונקציה equals ולכן שוב תקבל null exception .

הדרך הנכונה היא :

if (null == add)

בהצלחה

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים