Java Краткая форма If-Statement - PullRequest
       49

Java Краткая форма If-Statement

1 голос
/ 21 января 2020

Я нашел следующий код:

  static void CreatePartys(int n) 
{ 

    int num = 0;
    int[] e = new int[n];
    e[num] = n;

    while (true) 
    { 
         int part = 0; 
        count = count +1;

        while (num >= 0 && e[num] == 1) 
        { 
            part += e[num]; 
            num--; 
        } 

        if (num < 0)  return; 

        e[num]--; 
        part++; 

        while (part > e[num]) 
        { 
            e[num+1] = e[num]; 
            part = part - e[num]; 
            num++; 
        } 

        e[num+1] = part; 
        num++; 
    } 
} 

И я застрял в операторе if, я никогда не видел этого никогда, даже внутри Java -Book.

 if (num < 0)  return; 

Что это возвращает? правда, ложь, число?

Ответы [ 2 ]

0 голосов
/ 21 января 2020

Краткое объяснение:

Если вы просто напишите return; Вы можете остановить выполнение текущего метода.

Если операторам не нужны скобки, если после них есть один оператор, например

if(2<variable)
   System.out.println("inIf")

System.out.println("outsideIf")

Итак. if (num < 0) return;

Просто означает: остановить выполнение метода, когда число меньше 0 Никакой другой код в методе не будет вызываться

0 голосов
/ 21 января 2020

После , если следует за оператором. Ниже приведен правильный код:

if (a > 5) b = c + 2;

Здесь b = c + 2; - это нормальное утверждение.

Но это утверждение также может быть определено фигурными скобками. Вы также можете использовать фигурные скобки в обычном коде следующим образом:

long i = 3;
long j = 4;
long k = 9;

{ i = j + 7; }

{ i = i * k + 123; }

i = 345;

{ k = j * 10; }

{
  i = 234 * j; 
  k = 12 * j;
  System.out.println(i);
}

Такая форма часто не имеет смысла, поскольку затрудняет понимание кода :) Но это допустимый код, который будет правильно компилироваться.

Что вы часто видите после , если - это просто утверждение, подобное приведенному выше.

Почему мы часто видим скобки после , если ? После , если точно , выполняется один оператор. Если у вас есть код, подобный

if (a > 5)
b = c + 2;
k = i + 3;

, то оператор b = c + 2; будет выполнен, если условие a> 5 будет выполнено. Но оператор k = i + 3; будет выполнен всегда , независимо от a> 5 .

Если вы хотите оба оператора выполняются, только если a> 5 имеет значение true, тогда вы используете фигурные скобки:

if (a > 5) {
  b = c + 2;
  k = i + 3;
}

Когда вы хотите выполнить ровно один оператор в зависимости от , если , вы можете опустить скобки. Но ваши товарищи по команде в проекте могут быть не уверены, было ли это ваше намерение опустить скобки или это была просто ошибка. Чтобы избежать подобных сомнений, правила кодирования во многих проектах требуют, чтобы любой оператор после , если должен использовать фигурные скобки, независимо от того, насколько простым является утверждение.

...