Java: break and continue with an optional boolean condition

George Radev georgeradev at gmail.com
Mon Jun 11 13:27:52 UTC 2018


Thank you Brian,

Your explanation is clear and convincing; it will be really ambiguous for
yielding values.

Thank you,
George

On Mon, Jun 11, 2018 at 4:10 PM Brian Goetz <brian.goetz at oracle.com> wrote:

> Of course, you can do what you are suggesting relatively simply and with
> almost as few characters:
>
>      if (i > 10)
>          break;
>
> Some languages let you do one-off conditional statements:
>
>      break if (i > 10);
>
> In some cases, this is more readable than the full "if statement" form,
> because it telegraphs the intent to conditionally break a little more
> clearly.  In some cases.
>
> But, I don't find the proposed feature very compelling.  It is neither
> substantially more concise, nor does it open up interesting new avenues
> of expression -- it's mostly a linguistic "hack".
>
> It also constrains with what else we might, in future, want to use as an
> argument to break or continue.  And in fact, expression switches use
> `break` to yield a value for the expression.  (By contrast, this _is_
> something that opens up interesting new avenues of expression.)  A break
> with a boolean would now be ambigious with break with a value to be
> yielded to a switch.
>
> The `{ statement } if { expression }` form is less problematic in this
> way -- but we still have not been able to convince ourselves that the
> language would be better off with this form than without.
>
> Cheers,
> -Brian
>
>
> > Would you consider a proposal for extending break and continue with an
> > optional boolean condition as reasonable?
> > The idea can be summarized in the code example:
> >
> >      for (;;) {
> >          ...
> >
> >          break (i > 10);
> >          ...
> >
> >          continue (i <= 12);
> >
> >          ...
> >
> >      }
> > //syntax will be:  break/continue [label] [boolean expression];
> >
> > This will increase the code readability of for, do and while; and leave
> > additional if and some curly brackets out of the picture.
> >
> > My arguments for such extension is that it solves the expressiveness
> > concerns that Donald E. Knut explain in its article "Structured
> Programing
> > with GOTO statements" by describing the Ole-Johan Dahl proposal for [loop
> > while repeat] structure where the condition is not bound to the
> beginning (
> > do...while()) nor to the end of the repeating block (while()...) which
> > makes the controlled flow of the program more effective.
> >
> > Thank you for your time and consideration!
> >
> > With Regards,
> > George Radev
>
>


More information about the amber-dev mailing list