Количество циклов, указанное в цикле For - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть цикл For, и он спрашивает пользователя, сколько раз цикл должен быть зациклен внутри цикла.Как мне повторить указанное количество раз, не повторяя вопрос «сколько имен вы хотели бы ввести»?

Проблема в том, что я не хочу повторять вопрос после пользователяответил на это.Когда пользователь отвечает на вопрос, я хочу, чтобы он спрашивал имена x количество раз, а затем продолжал.

Основная проблема заключается в том, что мне нужно спросить, сколько раз циклэто после того, как имя спросили.Это говорит о листе назначения.

Большое спасибо!

for (int i = 0; i < num; i++) {
   System.out.println("Enter name #" + (i+1));
    names[i] = input.next();

    System.out.println("How many names would you like to input?");
    num = input.nextInt;
}

Ответы [ 4 ]

0 голосов
/ 13 декабря 2018
import java.util.Scanner;
public class Newpro{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
System.out.println("how many times you want to loop?")
int num = sc.nextInt();//input the no of times you want to loop
String names[i] = new String[num];//initialize a string array for reading names
for(i=0;i<num;i++){
System.out.println("enter name#"+(i+1));
names[i]=sc.next();
}

for(j=0;j<num;j++){
//printing the names entered by you
System.out.println("the entered names by you are"+" "+names[j]);
}

, как предлагали другие, вы должны вывести свою часть 'num' из цикла и после этого инициализировать строковый массив для чтения ваших имен, указав, сколько имен вы хотите ввести (индекс массива строк =количество имен, которые вы хотите ввести, и количество раз, которое вы также хотите зациклить ==> 'num'), и на основе этого числа цикл будет выполнен с указанным выше кодом.

наконец, выполните итерацию по массиву инапечатайте введенные вами имена.

Редактировать: 1

проверьте с помощью приведенного ниже кода, если вам нужно спросить "сколько имен пользователь хочет ввести ПОСЛЕ того, как он запрашивает имя.

import java.util.Scanner;
public class Newpro2{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
//make sure you create a string array with index = no of names you want to 
//enter
String[] names = new String[10];
System.out.println("enter name#1");
names[0]= sc.next();
System.out.println("how many inputs you want to give?");
num=sc.nextInt();//give the no of inputs you want to give here
//read the remaining names
for(int i=1;i<num;i++){
System.out.println("enter name#"+(i+1));
names[i] = sc.next();
}

//print all the names entered by you
for(int j=0;j<num;j++){
System.out.println("entered name#"+(j+1)+"by you is"+" "+names[j]);
}
0 голосов
/ 13 декабря 2018

Всегда перемещайте подобные вопросы из цикла, а не изнутри.

System.out.println("How many names would you like to input?");
   num = input.next();

    for (int i = 0; i < num; i++) {

        System.out.println("Enter name #" + (i+1));
        names[i] = input.next();
    }
0 голосов
/ 13 декабря 2018
 num = input.next();

Вы спрашиваете, что числа, а не строка, должны изменить .next () на nextInt или nextShort.

@ DevilsHnd первый код действительно не будет работать, я никогда не видел, чтобы String [] = new String [] использовал массив раньше плюс , это лучше объяснит, почему .@JAP ссылка с кодом может работать

0 голосов
/ 13 декабря 2018

Вы должны переместить свой num код геттера за пределы цикла следующим образом:

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.println("How many names would you like to input?");
    int num = input.nextInt();
    String names[] = new String[num];

    for (int i = 0; i < num; i++) {
        System.out.println("Enter name #" + (i+1));
        names[i] = input.next();
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...