HelloWorld 代码编写教程
学习编程常从打印“Hello World”开始。这一句输出不只是仪式:它帮你确认编辑器、编译器或解释器、运行环境与字符编码是否正确。完成它,你可以快速定位工具链问题,掌握输入/输出的最基本流程,为接下来学习语言语法、调试与工程化打下稳固基础。

为什么从 Hello World 开始(用费曼法解释)
想像你要教别人一件事,最好的方式是从最简单的例子开始。*Hello World* 就是这样一个教学用例:只做一件非常明确的事——把一段文本输出到屏幕上。通过这个最小可运行程序,你可以证明三件事同时成立:
- 你的代码文件可以被语言工具识别(编译或解释)
- 运行环境(终端、浏览器、IDE)能执行程序并显示输出
- 字符编码、换行等基础设置不会在最简单场景下出错
如果把编程比作修房子,Hello World 就是把门打开确认进出通畅的第一步。不懂为什么要做这一步的人,后续遇到环境问题会被各种异常卡住很久。
Hello World 的核心要素
输入与输出(I/O)
最明显的部分是“输出”。不同语言有不同的输出函数或方法:printf、println、console.log、print 等。掌握输出后,下一步是理解输入(从键盘、文件、网络读取)与输出如何在程序中配合。
编译与解释
有的语言需要先编译(例如 C、C++、Go),有的语言直接解释或即时编译(如 Python、JavaScript)。Hello World 帮你确认这条路径是否通畅:源文件 → 编译/解释器 → 可执行/运行时。
文件编码与换行
现代环境多采用 UTF-8,但有时系统或编辑器默认编码不同,会导致输出乱码。Hello World 也是检查编码与终端设置的好方法。
主流语言的 Hello World 示例(实操优先)
下面列出常见语言的最小实现。每个例子都能直接复制粘贴运行(在合适环境下)。我会标注运行命令或说明。
C(GCC)
#include <stdio.h>
int main(void) {
printf("Hello World\n");
return 0;
}
编译并运行:gcc hello.c -o hello && ./hello
C++(g++)
#include <iostream>
int main() {
std::cout << "Hello World" << std::endl;
return 0;
}
编译并运行:g++ hello.cpp -o hello && ./hello
Java
public class Hello {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
编译并运行:javac Hello.java && java Hello
Python(3.x)
print("Hello World")
运行:python3 hello.py
JavaScript(Node.js)
console.log("Hello World");
运行:node hello.js
Go
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
编译并运行:go run hello.go 或 go build && ./hello
Rust
fn main() {
println!("Hello World");
}
编译并运行:rustc hello.rs && ./hello
C#(.NET)
using System;
class Program {
static void Main() {
Console.WriteLine("Hello World");
}
}
运行(dotnet):dotnet new console; // 在模板中替换 Program.cs 内容,然后 dotnet run
Ruby
puts "Hello World"
运行:ruby hello.rb
PHP(CLI)
<?php
echo "Hello World\n";
运行:php hello.php
Shell(bash)
#!/usr/bin/env bash
echo "Hello World"
运行:chmod +x hello.sh && ./hello.sh
Swift
print("Hello World")
运行:swift hello.swift(或用 Xcode 项目)
Kotlin
fun main() {
println("Hello World")
}
运行:kotlinc hello.kt -include-runtime -d hello.jar && java -jar hello.jar(或使用 Kotlin 脚本)
常见问题与排查清单(实践优先)
- 没有输出或程序没有执行:检查文件是否保存,是否正确运行命令,是否在正确目录,是否有编译错误。
- 乱码或问号:确认文件保存为 UTF-8、终端编码与字体支持目标字符。
- 权限问题(Unix):可执行文件可能没有执行权限,使用 chmod +x。
- 类或文件名不匹配(Java):公有类名必须和文件名一致。
- 多语言环境下换行不同:Windows 使用 CRLF,Linux/macOS 使用 LF。在脚本首行使用正确的 shebang。
一张表看懂各语言的运行方式
| 语言 | 文件扩展名 | 运行方式(示例命令) |
| C | .c | gcc hello.c -o hello && ./hello |
| Python | .py | python3 hello.py |
| Java | .java | javac Hello.java && java Hello |
| JavaScript | .js | node hello.js 或在浏览器 console |
| Go | .go | go run hello.go |
| Rust | .rs | rustc hello.rs && ./hello |
如何在不同环境验证你的 Hello World(按步骤)
在命令行/终端
- 打开终端,cd 到目标目录,创建源文件(使用你熟悉的编辑器)。
- 保存文件并运行对应命令(上面表格有示例)。
- 若没有输出或报错,先看第一条错误信息并 Google 错误关键词,再逐步排查。
在 IDE(如 VSCode、IntelliJ、Eclipse)
- 创建对应类型的项目或直接新建文件。
- 利用 IDE 的运行按钮或终端执行命令。
- IDE 常提供自动修复或提示,关注红色波浪线和输出面板。
在浏览器环境(前端 JS 或 HTML)
<!DOCTYPE html>
<meta charset="utf-8">
<script>
console.log("Hello World");
document.body.innerText = "Hello World";
</script>
将文件保存为 .html 并用浏览器打开,按 F12 查看 Console。
从 Hello World 走向可维护代码的第一步
Hello World 教会你如何让工具链通畅,但工程化要走得更远。下面列一些自然过渡的实践:
- 添加注释:用一句注释说明程序意图,即使很简单,也养成好习惯。
- 分文件组织:即使是小练习,也试着把逻辑拆分成函数并放文件里。
- 使用版本控制:把第一个可运行代码提交到 Git,你会学到分支与提交信息的价值。
- 自动化构建与运行脚本:写 Makefile、npm script 或其他脚本来统一命令。
- 测试:为输出结果写断言(简单单元测试),验证程序行为。
进阶话题:国际化、编码与字符问题(别忽视)
当你想打印非 ASCII 文本(例如中文、emoji),需要注意三点:
- 源文件的编码(建议 UTF-8)
- 终端或控制台的字体与编码支持
- 运行时的 locale 设置(有时影响日期或数字格式化)
举个小坑:在 Windows 的某些老终端里,UTF-8 不能直接显示中文,需要 chcp 65001 或使用终端模拟器。
常见延伸练习(动手胜于理论)
- 把 Hello World 改成从命令行接收一个名字并打印“Hello, 名字!”
- 将输出写入文件并再次读取显示(练习文件 I/O)
- 在网络套接字上发送 Hello World(TCP/UDP),理解网络编程的基本流
- 把 Hello World 放进一个小的 CI 流水线,确认自动构建与运行
为什么这个看起来简单的练习常常出问题
实际原因往往不是程序本身,而是环境:版本不一致、路径错误、权限、编码或忘记保存文件。遇到问题时,回到最基本的检查清单通常能更快定位:
- 文件是否正确保存?
- 命令是否在正确目录下运行?
- 错误信息的首行是什么?
- 是否用了错误的解释器/编译器版本?
- 是否有隐藏字符或不可见的 BOM?
小心机与体验优化(那些你可能没想过的小技巧)
- 在脚本最上面写好 shebang(#!/usr/bin/env bash),方便在类 Unix 系统直接运行。
- 用 UTF-8 无 BOM 保存源文件,避免 Windows BOM 在某些语言中导致解析失败。
- 把常用运行命令放到 Makefile、npm script 或 shell alias,减少重复键入。
- 在 Windows 上使用 Windows Terminal、PowerShell 或 WSL 提升兼容性。
练习清单(按难度递增)
- 初级:将 Hello World 改为输出当前时间戳。
- 中级:接受命令行参数并根据参数输出不同内容。
- 进阶:实现一个简单的 HTTP 服务器,访问根路径返回 Hello World。
- 挑战:写一个小程序,读取系统环境变量并打印特定变量的值。
写到这里,可能你已经准备好动手了。别怕犯错,Hello World 的价值正是在你解决那些看似“琐碎”的环境问题时,慢慢把对工具链与语言的感觉建立起来。平时多保存、常跑一遍、记录每次遇到的错误信息,久而久之你会发现,第一次能跑通 Hello World 的那份成就感,会在更复杂项目里不断重复出现。