1. Home
  2. /
  3. Zig
  4. /
  5. Counter and Theme Toggle

Counter and Theme Toggle - Zig Typing CST Test

Loading…

Counter and Theme Toggle — Zig Code

Demonstrates a simple counter with theme toggling using Zig variables and functions.

const std = @import("std");
var count: i32 = 0;
var isDark: bool = false;

fn updateUI() void {
	std.debug.print("Counter: {d}\n", .{count});
	std.debug.print("Theme: {s}\n", .{ if (isDark) "Dark" else "Light" });
}

fn increment() void {
	count += 1;
	updateUI();
}

fn decrement() void {
	count -= 1;
	updateUI();
}

fn reset() void {
	count = 0;
	updateUI();
}

fn toggleTheme() void {
	isDark = !isDark;
	updateUI();
}

pub fn main() void {
	updateUI();
	increment();
	increment();
	toggleTheme();
	decrement();
	reset();
}

Zig Language Guide

Zig is a general-purpose, statically typed, compiled programming language designed for robustness, optimal performance, and simplicity. It emphasizes manual memory management, safety features, cross-compilation, and direct interoperability with C, making it ideal for system programming, embedded development, and high-performance applications.

Primary Use Cases

  • ▸System programming and OS development
  • ▸Embedded and bare-metal applications
  • ▸High-performance libraries and tools
  • ▸Cross-platform and cross-compiler projects
  • ▸Interfacing with C libraries and APIs

Notable Features

  • ▸Manual memory management with safety
  • ▸Comptime (compile-time) execution
  • ▸Direct C interoperability
  • ▸Error unions and optional types
  • ▸Cross-compilation built-in

Origin & Creator

Created by Andrew Kelley in 2015 with the goal of replacing C while providing safer and more readable system programming constructs.

Industrial Note

Zig is gaining traction in system-level programming, embedded device firmware, WebAssembly development, game engine tooling, and low-level networking applications.

More Zig Typing Exercises

Zig Random Number GeneratorZig Todo ListZig Dice RollerZig Countdown TimerZig Prime CheckerZig Temperature ConverterZig Shopping CartZig Name GreetingZig Stopwatch

Practice Other Languages

CReactPythonC++RustTypeScriptKotlinPHPJavaC#RubyMqlCqlN1qlCypher