01 / Java for FTC
Variables, Math, and Decisions
Use numbers, booleans, if statements, and loops for robot behavior.
01 / Java for FTC
Use numbers, booleans, if statements, and loops for robot behavior.
You will
This lesson is part of the Java foundation, so the emphasis should be on how a small language feature becomes a robot habit. Students should leave understanding the syntax, but more importantly they should understand what the robot will do differently because that syntax exists. Keep the focus on readable values, predictable flow, and code that another teammate can safely modify later.
Joystick axes, motor power, sensor distance, encoder position, and button state are all variables. Good FTC programmers name those values clearly and transform them one step at a time so debugging stays possible.
If statements are not just syntax practice. They choose slow mode, prevent mechanisms from moving past limits, and make autonomous routines exit before they damage hardware.
Have students make one small edit, run it, observe telemetry, and explain the result before moving on. This is slower than pasting a large example, but it builds the debugging discipline they will need once hardware is involved.
For this specific lesson, students should first restate the goal in robot terms, then identify the value or behavior they expect to observe, then run the smallest test that proves the idea. The lesson should feel like a guided lab: predict, run, observe, explain, and only then extend.
ScaledDriveInput.java · Java
double drive = -gamepad1.left_stick_y; double turn = gamepad1.right_stick_x; boolean slowMode = gamepad1.left_bumper; double scale = slowMode ? 0.35 : 0.85; double leftPower = (drive + turn) * scale; double rightPower = (drive - turn) * scale; leftPower = Math.max(-1.0, Math.min(1.0, leftPower)); rightPower = Math.max(-1.0, Math.min(1.0, rightPower));
Most failures at this level come from hidden assumptions: a value has the wrong sign, a method runs at the wrong time, a variable is scoped where later code cannot see it, or a class is named differently than its file. The lesson should train students to check the smallest claim first instead of rewriting the whole OpMode.
Check your understanding
Why clamp motor power before sending it to hardware?
0 of 1 answered
References
Finished reading?
You'll move on to “Methods, Classes, and Robot Helpers” next.