ورود

View Full Version : نگرفتن ورودی برای بار دوم از صفحه کلید



hosseinam1370
جمعه 20 فروردین 1395, 05:35 صبح
دوستان من میخام دو جور نام و نام خانوادگی رو نشون بدم ، برای بار اول میگیره و نشون میده ولی برای بار دوم که از nextline استفاده میکنم ، اصلا ورودی نمیگیره ، دلیلش چیه ؟ با تشکر/

package infoOfMe;
import java.util.*;
public class info {
static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
String Name , Famili , allInfo;
float vazn , sen;
System.out.println("lotfan esam va famili va vazn va sen khod ra vared konid :");

Name = input.next();
Famili = input.next();
vazn = input.nextFloat();
sen = input.nextFloat();

System.out.printf("name shoma = %s va famili shoma = %s \nvazne shoma = %2f va sene shoma = %2f", Name , Famili , vazn , sen);
System.out.println("\ndobare esme khod ra vared konid baraye teste dovom :");
allInfo = input.nextLine();
System.out.println(allInfo);

}

}

alpotkin
جمعه 20 فروردین 1395, 06:05 صبح
این توابع از جایی که مکان نما وجود داره شروع میکنه و وقتی شما اینتر میزنید یک رشته خالی برمیگردونه.

hosseinam1370
جمعه 20 فروردین 1395, 09:17 صبح
درست متوجه نشدم ، مگه وقتی برنامه رسید به خط allInfo = input.nextLine();نباید منتظر بمونه تا من یچی از صفحه کلید وارد کنم، بعد اینتر رو بزنم و اون ادامه بده ، که همون چاپ میشه؟!!


ممنون.

smokyshadow
جمعه 20 فروردین 1395, 09:39 صبح
به دو شکل می تونی این مشکلو حل کنی:نمی دونم چرا دفه اول برای اسم گرفتن از .next و دفه اخر از .nextLine استفاده کردی ولی راه اول اگه .nextLine اخر رو به .next تغییر بدی و.ولی راه دوم(اگه می خوای که از nextLine استفاده کنی قبلش یه input.nextLineبزن اینجوری:
String Name , Famili , allInfo;
float vazn , sen;
System.out.println("lotfan esam va famili va vazn va sen khod ra vared konid :");
Scanner input =new Scanner(System.in);
Name = input.next();
Famili = input.next();
vazn = input.nextFloat();
sen = input.nextFloat();

System.out.printf("name shoma = %s va famili shoma = %s \nvazne shoma = %2f va sene shoma = %2f", Name , Famili , vazn , sen);
System.out.println("\ndobare esme khod ra vared konid baraye teste dovom :");
input.nextLine();
allInfo = input.nextLine();

System.out.println(allInfo);