Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-IF';输入';=';这';{将数组中的字符串存储到变量中}_Java_Arrays_If Statement_Store - Fatal编程技术网

Java-IF';输入';=';这';{将数组中的字符串存储到变量中}

Java-IF';输入';=';这';{将数组中的字符串存储到变量中},java,arrays,if-statement,store,Java,Arrays,If Statement,Store,我对编程比较陌生。 我现在正试图做一个程序,我正在想办法做点什么。我希望你们能帮我,因为我只是不知道怎么做 所以,首先,我制作了一个数组并填充了一些东西: String[] pizza = new String[10]; pizza[0] = "1- Cheese"; pizza[1] = "2- Wedge"; pizza[2] = "3- Bacon"; pizza[3] = "4- Hawaiian"; pizza[4] = "5- Vegetari

我对编程比较陌生。 我现在正试图做一个程序,我正在想办法做点什么。我希望你们能帮我,因为我只是不知道怎么做

所以,首先,我制作了一个数组并填充了一些东西:

String[] pizza = new String[10];
    pizza[0] = "1- Cheese";
    pizza[1] = "2- Wedge";
    pizza[2] = "3- Bacon";
    pizza[3] = "4- Hawaiian";
    pizza[4] = "5- Vegetarian";
    pizza[5] = "6- Pepperoni";
    pizza[6] = "7- Ham";
    pizza[7] = "8- Apple";
    pizza[8] = "9- Grape";
    pizza[9] = "10- Italian";
我想让它成为一个IF语句(在一段时间内)。我把代码放在这里,然后解释

int pizzaCounter = 0;

        while(pizzaCounter < 5)
        {

            Scanner pizzaPick = new Scanner(System.in);
            int Pizzas = pizzaPick.nextInt();

            if (Pizzas == 1)
            {
                *Store "1- Cheese" (From pizza[0]) into a variable*

                pizzaCounter++;
            }
            if (Pizzas == 2)
            {
                *Store "2- Wedge" (From pizza[0]) into a variable*

                pizzaCounter++;
            }
            if (Pizzas == 3) etc...

        }
int pizzaccounter=0;
而(比萨饼计数器<5)
{
扫描仪pizzaPick=新扫描仪(System.in);
int Pizzas=pizzaPick.nextInt();
如果(比萨饼==1)
{
*将“1-奶酪”(来自pizza[0])存储到变量中*
pizzaccounter++;
}
如果(比萨饼==2)
{
*将“2-Wedge”(来自pizza[0])存储到变量中*
pizzaccounter++;
}
如果(比萨饼=3)等。。。
}
现在在'Insert somethine here'位,我想尝试将其设置为将数组(pizza)中的文本存储到某个变量中,以便稍后打印出来。。。例如,如果用户输入'1',则取“1-Cheese”,并将其存储在一个变量中,我可以稍后打印出来

另外,我想把它弄清楚,这样就不会有10条IF语句提示每个变量的事情

我不知道这是否可行,但非常感谢您的帮助!:D

我希望我在这里问的是可以理解的


如果可能的话,你能解释一下你在每个步骤中都做了什么,这样我才能真正理解发生了什么,也许以后会使用相同的代码,而不是仅仅复制和粘贴代码?我是个书呆子,所以我觉得我学的越多,以后能用的就越多。。。非常感谢D

您可以用以下内容替换整个
if
语句系列:

string saveName = "";
if ((Pizzas >= 0) && (Pizzas <= 9)) {
    saveName = pizza[Pizzas];           // This is "insert something here".
    pizzaCounter++;
}

// Here, saveName has the pizza name.
string saveName=”“;
如果((比萨饼>=0)和(比萨饼0)和(比萨饼=pizzaList.length))
System.out.println(“无效的“+thisPizza”输入);
}
//输出所有比萨饼。
对于(int i=0;i
您可以将整个系列的
if
语句替换为以下内容:

string saveName = "";
if ((Pizzas >= 0) && (Pizzas <= 9)) {
    saveName = pizza[Pizzas];           // This is "insert something here".
    pizzaCounter++;
}

// Here, saveName has the pizza name.
string saveName=”“;
如果((比萨饼>=0)和(比萨饼0)和(比萨饼=pizzaList.length))
System.out.println(“无效的“+thisPizza”输入);
}
//输出所有比萨饼。
对于(int i=0;i
String[]PIZZA\u LABELS=新字符串[]{“1-奶酪”,“2-楔形”…}
字符串标签;
而(比萨饼计数器<5)
{
扫描仪pizzaPick=新扫描仪(System.in);
int Pizzas=pizzaPick.nextInt();
label=PIZZA_LABELS[Pizzas-1];//1索引vs 0索引
...
系统输出打印项次(标签);
“如果”不见了。 (我鼓励您查看java.util.Map,寻找可能比标签数组更干净的数据结构)。

String[]PIZZA\u LABELS=newstring[]{“1-Cheese”、“2-Wedge”…}
字符串标签;
而(比萨饼计数器<5)
{
扫描仪pizzaPick=新扫描仪(System.in);
int Pizzas=pizzaPick.nextInt();
label=PIZZA_LABELS[Pizzas-1];//1索引vs 0索引
...
系统输出打印项次(标签);
“如果”不见了。
(我鼓励您查看java.util.Map,寻找可能比标签数组更干净的数据结构)。

不要在java中对本地原语使用大写单词(
Pizzas
)。通常,这些是类名

你想区分什么是相同的,而不管
比萨饼的值是多少-
——例如,你每次都增加
比萨饼计数器
——并且把它从if/else中去掉。如果你所需要做的只是得到比萨饼类型的名称,那么这里有几个例子说明你根本不需要一套比萨饼盒,你只需要分配给以后的任何用途

如果每个案例都有一些独特的东西,您可以使用
开关

顺便说一句,您可以这样初始化阵列:

String eg[] = {
   "one",
   "two",
   "three",
};
String[] strArray = {"one", "two", "three", ...};

在Java中,不要对本地原语使用大写的单词(
Pizzas
),通常这些都是类名

你想区分什么是相同的,而不管
比萨饼的值是多少-
——例如,你每次都增加
比萨饼计数器
——并且把它从if/else中去掉。如果你所需要做的只是得到比萨饼类型的名称,那么这里有几个例子说明你根本不需要一套比萨饼盒,你只需要分配给以后的任何用途

如果每个案例都有一些独特的东西,您可以使用
开关

顺便说一句,您可以这样初始化阵列:

String eg[] = {
   "one",
   "two",
   "three",
};
String[] strArray = {"one", "two", "three", ...};

您可以在这里做一些事情来优化代码。首先,放弃while循环,改为for循环,如下所示:

for (int i = 0; i < 5; i++) {
    // Will loop 5 times
}
switch (pizzaPick.nextInt()) {
    case 0:
        // Do something
        break;
    case 1:
        // Do something else
        break;
    case 2:
        // Etc.
        break
}
然而,我们实际上可以进一步优化它,这将完全不需要switch语句。不过,首先,我们需要一个变量来存储拾取的pizza。我们可以使用另一个数组,该数组将有5个元素长。按如下方式创建它:

String[] pickedPizzas = new String[5];
现在我们可以用它来存储拾取的披萨。然后我们可以在每个循环中执行此操作来保存拾取的披萨:

pickedPizzas[i] = pizza[pizzaPick.nextInt()];
如您所见,我们甚至不需要使用ifs或开关,因为我们可以使用赋值。我们可以使用括号语法继续优化数组。您可以像这样初始化数组:

String eg[] = {
   "one",
   "two",
   "three",
};
String[] strArray = {"one", "two", "three", ...};
这节省了sp