Vinnaren i pepparkakshustävlingen!
2017-11-15, 07:49
  #1
Medlem
Yung-Hydras avatar
Kod:
public class primeme { 
    public static void main(String args[]) { 
        for (int tal = 0; tal <= 100; tal++) {
            for (int i = 2; i < tal; i++) {
                if ((tal % i) == 0) {
                    // System.out.println(tal + " är inte ett primtal");
                    break;
                } else {
                    System.out.println(tal + " är ett primtal");
                    break;
                }
            }
        }
    }
}
I eclipse står det att "i++" i den andra for loopen är dead code och värdet stannar på 2 och ökar inte, hur löser jag detta? Tack!
__________________
Senast redigerad av Yung-Hydra 2017-11-15 kl. 07:54.
Citera
2017-11-15, 07:58
  #2
Medlem
kimdah2002s avatar
Citat:
Ursprungligen postat av Yung-Hydra
Kod:
public class primeme { 
    public static void main(String args[]) { 
        for (int tal = 0; tal <= 100; tal++) {
            for (int i = 2; i < tal; i++) {
                if ((tal % i) == 0) {
                    // System.out.println(tal + " är inte ett primtal");
                    break;
                } else {
                    System.out.println(tal + " är ett primtal");
                    break;
                }
            }
        }
    }
}
I eclipse står det att "i++" i den andra for loopen är dead code och värdet stannar på 2 och ökar inte, hur löser jag detta? Tack!
i ökar inte med ++ eftersom första kontrollen är om i(2) < tal(0) vilket det inte är så resten är dead code
Citera
2017-11-15, 07:59
  #3
Medlem
I första iterationen i första loopen är tal = 0. När den sedan går in i den andra är i = 2, i < tal.
Dvs, tal är mindre än "i" i dom tre första iterationerna i andra loopen.

Kan det vara något?
Citera
2017-11-15, 08:51
  #4
Medlem
kodsnickrarns avatar
Du har ju en break i både if och else satsen i den den inre loopen, det gör att den kommer
sätta i till 2, göra första kollen mot "tal % i ==0" och därefter bryta iterationen och köra nästa iteration i den yttre loopen.

/K
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback