Как получить доступ к строковому значению внутри цикла for?

#java

Вопрос:

Здесь я не могу получить доступ к значению за name пределами строки, даже если я использую другую строку, значение которой не инициализируется.

 public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("ntWelcome to the Store");
    System.out.print("nPls enter the number of items you want to bill ");
    int n = sc.nextInt();
    String name;
    for(int i = 1;i<=100;i  ) {
        System.out.print("Enter the name of the item no " i " ");
        name = sc.next();
        if (i == n) {
            break;
        }
    }
    System.out.println();   
    for(int m=1;m<=n;m  ) {
        //System.out.println(name);        
    }    
}
 

Комментарии:

1. Код неполон. Где name объявлено? Ответ на этот вопрос определяет, где к нему можно получить доступ.

2. типа хорошо, я собираюсь загрузить все code…is все в порядке?

3. Ну, желательно столько, сколько нужно, чтобы ответить на вопрос!

4. братан, это мой первый раз, я очень много думаю, и в принципе все в порядке, я просто тренируюсь

5. Хорошо, я просто говорю, что если вы можете идентифицировать что-то другое, кроме «всего кода», то это поможет читателям здесь.

Ответ №1:

Вам нужно изменить name , чтобы быть массивом, так как он должен содержать несколько значений.

 String[] names = new String[n];
 

Я также думаю, что вместо этого вам следует использовать while петлю. Что-то вроде

 Scanner sc = new Scanner(System.in);
System.out.println("ntWelcome to the Store");
System.out.print("nPls enter the number of items you want to bill ");
int n = sc.nextInt();
String[] names = new String[n];
int i = 0;
while (i < n) {
    System.out.print("Enter the name of the item no "   i   " ");
    names[i] = sc.next();
    i  ;
}
System.out.println();
for (int m = 0; m < n; m  ) {
    System.out.println(names[m]);
}
 

Ответ №2:

Ваш вопрос не ясен. Но я надеюсь, что это все исправит. Обязательно инициализируйте переменную n нужным значением.

  import java.util.*;
 
 class example{
 
 public static void main(String args[]){
 
     Scanner sc = new Scanner(System.in);
     String[] name = new String[100];
     int n=3; // make sure to change this one
     
     for(int i = 1;i<=3;i  ){
            System.out.print("Enter the name of the item no " i " ");
            name[i] = sc.next();
     }
     for(int i = 1;i<=n;i  ){
            System.out.print(name[i] "n");
    }

}
}