  Adding versatile interactions to imperative programming -- C, Java and
Android -- is an essential task. Unfortunately, existing languages provide only
limited constructs for user interaction. These constructs are usually in the
form of $unbounded$ quantification. For example, existing languages can take
the keyboard input from the user only via the $read(x)/scan(x)$ construct. Note
that the value of $x$ is unbounded in the sense that $x$ can have any value.
This construct is thus not useful for applications with bounded inputs. To
support bounded choices, we propose new bounded-choice statements for user
interation. Each input device (the keyboard, the mouse, the touch, $...$)
naturally requires a new bounded-choice statement. To make things simple,
however, we focus on a bounded-choice statement for keyboard -- kchoose -- to
allow for more controlled and more guided participation from the user. It is
straightforward to adjust our idea to other input devices. We illustrate our
idea via Java(BI), an extension of the core Java with a new bounded-choice
statement for the keyboard.
