2016-02-08 3 views
0

Мне нужна помощь в создании цикла, который учитывает каждое значение от 1 до номера-1. Также, как проверить каждое значение, чтобы увидеть, является ли он делителем числа , и если да, добавив его к сумме.Создание циклов для проверки значений

Это то, что я до сих пор:

public static void main(String[] args) { 
    Scanner input = new Scanner (System.in); 

    System.out.print("Please enter a positive integer: "); 
    int n = input.nextInt(); 

    while (n < 0) { 
    System.out.println(n + " is not positive."); 
    System.out.print("Please enter a positive integer: "); 
    n = input.nextInt(); 
    } 
} 
+0

Если 'n' - это положительное число, тогда ваш цикл будет работать вечно. Вам нужно запустить индекс, чтобы начать с 1 и цикл, который работает, пока он меньше, чем 'n'. Вы узнали о циклах? Вы, должно быть, видели примеры. – user1803551

ответ

0

Вы можете использовать это в качестве исходного блока для применения:

package Testers; 

import java.io.Console; 

public class Application { 

    public static void main(String[] args) 
    { 
     Console console = System.console(); 
     if (console == null) 
     { 
      System.err.println("No console."); 
      System.exit(1); 
     } 

     boolean keepRunning = true; 
     while (keepRunning) 
     {  
      String name = console.readLine("Type your positive integer"); 
      try{ 
      int integer = Integer.parseInt(name); 
      if(integer < 0){ 
       System.out.println("You must specify a positive integer!"); 
      } 
      for(int i = 1; i<integer; i++){ 
       // our variable "i" is smaller than "integer". This will parse all the numbers between one and "integer" -1. 
       if(i % 2 == 0){ 
        //"i" IS divisible by 2. Of course, you can change this value to what you want to change it to. 
        //Here you can add it to a sum 
       }else{ 
       //"i" is not divisible by 2. Of course, you can change this value to what you want to change it to. 
       } 
      } 
      }catch(NumberFormatException e){ 
       System.out.println("You must specify a positive integer!"); 
      } 
     } 
    } 

} 
+0

(1) Используйте 'Scanner' вместо' Console', поскольку он может быть недоступен. (2) Нет необходимости в 'int one = 1', когда он может быть назначен непосредственно' i'. (3) Правильно отформатируйте свой код. – user1803551

+1

Отредактировано отступом и удалена «одна» переменная. У меня никогда не было проблемы с использованием 'Console' вместо' Scanner', я не хочу этого менять. Спасибо за помощь! – JD9999

0

Если вы хотите сделать что-то для известного числа раз , в основном рекомендуется использовать цикл for. Если вы хотите сделать что-то для числа 1 в n-1, цикл может выглядеть

for(int i = 1; i < n; i++) { // do stuff } 

Обратите внимание, что она начинает отсчет от 1 и останавливается, как только i больше или равно, чем n.

Для того, чтобы узнать, может ли быть номер, скажем n, делится на некоторые цифры, скажем k, может использоваться modulo-operator %. Если n % k == 0 это означает, что n делится на k. С помощью события if это можно протестировать, и когда у вас есть переменная sum, вы можете добавить все, что хотите, к этой переменной, чтобы суммировать все.

Надеюсь, что поможет

Смежные вопросы