نمایش نتایج 1 تا 2 از 2

نام تاپیک: مشکل در خارج شدن از حلقه

  1. #1

    مشکل در خارج شدن از حلقه

    با سلام و عرض خسته نباشید

    من یک برنامه باید بنویسنم که در اون ما یک فایل متنی می سازیم و کاربر تا هر مقدار که خواست می تونه در این فایل متنی که ساخته شده بنویسه و به محض اینکه این کاربر یک رشته خالی رو ارسال کرد این برنامه خارج بشه و فایل ساخته شده تکمیل بشه.
    برای ساخت این برنامه من از حلقه while استفاده کردم. و وقتی که کاربر متنی رو می نویسه و بعد که به خط جدید میره و کلید اینتر رو میزنه ولی برنامه از حلقه خارج نمیشه؟
    مشکل کجا هست و شما چه پیشنهادی برای نوشتن این برنامه دارین؟
    پیشاپیش تشکر از پاسخ گویی تون
    کدی که نوشم:

    import java.io.*;
    import java.util.Scanner;
    public class lesson {
    public static void main (String[] args) throws IOException {
    // we name our file,
    File file = new File("filewecreate.txt");
    Scanner input = new Scanner(System.in);
    // we create a new file in project folder if the file with this name does not exist,
    if (file.exists() == false) {
    file.createNewFile();
    }

    // we make an instance of PrintWriter to write in our text file.
    PrintWriter pw = new PrintWriter(file);

    // the variable will save the input inside
    String userInput;
    System.out.println("Enter a text line here: ");

    // the while loop will check the input each time user press enter or go to a new line and the if statement inside loop will break
    // the loop if the input is null or ""
    while (true) {
    userInput = input.next();
    pw.println(userInput);
    if (userInput == "") {
    break;
    }
    }

    // we close the PW
    pw.close();

    // And at last we print out the Done message to show the user that program has been ran successfully
    System.out.println("Done");
    }

    }





  2. #2
    کاربر دائمی آواتار farhad_shiri_ex
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    37
    پست
    973

    نقل قول: مشکل در خارج شدن از حلقه

    نقل قول نوشته شده توسط habiballahafg مشاهده تاپیک
    با سلام و عرض خسته نباشید

    من یک برنامه باید بنویسنم که در اون ما یک فایل متنی می سازیم و کاربر تا هر مقدار که خواست می تونه در این فایل متنی که ساخته شده بنویسه و به محض اینکه این کاربر یک رشته خالی رو ارسال کرد این برنامه خارج بشه و فایل ساخته شده تکمیل بشه.
    برای ساخت این برنامه من از حلقه while استفاده کردم. و وقتی که کاربر متنی رو می نویسه و بعد که به خط جدید میره و کلید اینتر رو میزنه ولی برنامه از حلقه خارج نمیشه؟
    مشکل کجا هست و شما چه پیشنهادی برای نوشتن این برنامه دارین؟
    پیشاپیش تشکر از پاسخ گویی تون
    کدی که نوشم:

    [FONT="]import java.io.*;[/FONT]
    [FONT="]import java.util.Scanner;[/FONT]
    [FONT="]public class lesson {[/FONT]
    [FONT="]public static void main (String[] args) throws IOException {[/FONT]
    [FONT="]// we name our file,[/FONT]
    [FONT="]File file = new File("filewecreate.txt");[/FONT]
    [FONT="]Scanner input = new Scanner(System.in);[/FONT]
    [FONT="]// we create a new file in project folder if the file with this name does not exist,[/FONT]
    [FONT="]if (file.exists() == false) {[/FONT]
    [FONT="]file.createNewFile();[/FONT]
    [FONT="]}[/FONT]
    [FONT="][/FONT]
    [FONT="]// we make an instance of PrintWriter to write in our text file.[/FONT]
    [FONT="]PrintWriter pw = new PrintWriter(file);[/FONT]
    [FONT="][/FONT]
    [FONT="]// the variable will save the input inside[/FONT]
    [FONT="]String userInput;[/FONT]
    [FONT="]System.out.println("Enter a text line here: ");[/FONT]
    [FONT="][/FONT]
    [FONT="]// the while loop will check the input each time user press enter or go to a new line and the if statement inside loop will break[/FONT]
    [FONT="]// the loop if the input is null or ""[/FONT]
    [FONT="]while (true) {[/FONT]
    [FONT="]userInput = input.next();[/FONT]
    [FONT="]pw.println(userInput);[/FONT]
    [FONT="]if (userInput == "") {[/FONT]
    [FONT="]break;[/FONT]
    [FONT="]}[/FONT]
    [FONT="]}[/FONT]
    [FONT="][/FONT]
    [FONT="]// we close the PW[/FONT]
    [FONT="]pw.close();[/FONT]
    [FONT="][/FONT]
    [FONT="]// And at last we print out the Done message to show the user that program has been ran successfully[/FONT]
    [FONT="]System.out.println("Done");[/FONT]
    [FONT="]}[/FONT]
    [FONT="][/FONT]
    }




    از آنجاییکه جاوا operator overloading را پشتیبانی نمیکنه! در زمانهایی که نیاز به مقایسه دقیق تر و بهینه تر رشته ها را دارید، بهتره از String.isEmpty ویا از Equal ویا از compareTo استفاده کنید.
    در برنامه شما هم به نظر همین مشکل عدم بهینه مقایسه رشته در حلقه مذکور وجود داره!
    در ضمن دوست عزیز! سعی کنید که سورس کد ها خودتون را در تگ های مناسب مختص به زبان برنامه نویسی در این تالار قرار بدید که قابل خواندن باشه!

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •