我有一个问题,在我的if语句中似乎没有运行for循环,因此for循环应该打印列表中的所有值。

import java.util.*;

public class kapitel12 {

public static void main(String[] args)
{

    Scanner scan = new Scanner(System.in);
    List<Float> temperatur = new ArrayList<Float>();

    while(true)
    {
        System.out.println("[L]ägg till temperaturmätning");
        System.out.println("[S]kriv ut alla temperaturer och medeltemperatur");
        System.out.println("[T]ag bort temperaturmätning");
        System.out.println("[A]vsluta");

        String val = scan.next();

        if (val.equals("L") || val.equals("l"))
        {
            System.out.println("Lägg till temperatur");

            float temp = Float.parseFloat(scan.next());
            temperatur.add(temp);
            System.out.println(temperatur);
        }
        else if (val.equals("S") || val.equals("s"))
        {
            System.out.println("Alla mätningar");


            for(int i = 0; i < temperatur.size(); i++)
            {
                System.out.println("Mätning" + i + ":" + temperatur.get(i));

            }
    }
}
}

最佳答案

循环运行,但温度大小为0,这意味着循环即将结束。温度填充在if子句中,但是如果转到if,则下一个子句else if将不会执行。

阅读列表之前,您必须先填入Tempaturatur,或者将Tempaturatur定义为var类而不是local var。

10-04 12:40