3月16日 break语句
一、单词:break
含义:中断、打破
短语:
- break glass
- Let's take a break.
二、Break 关键字
用途:终止循环结构和 Switch 分支结构;它只能用在以下程序结构中:
- for 循环结构
- while 循环结构
- do while 循环结构
- switch 分支结构
案例 1: if 语句中 不能使用 break( 记住,这道题不用写)
if( 10 > 5 ){
Console.WriteLine("Hello");
break; // 非法使用,不能用在 if 中
Console.WriteLine("你好");
}
案例 2:使用 break计算 1~100之间的偶数和
案例5:计算器
要求:创建一个能进行连续加减乘除运算的控制台计算器。功能:
- 欢迎界面。
- 支持加法 (+), 减法 (-), 乘法 (*), 除法 (/)。
- 处理除法除零错误。
- 支持连续计算(询问用户是否继续)。
- 用户输入错误时给出友好提示。
代码:为下面的每行代码添加注释
//
Console.WriteLine("欢迎使用简易计算器!");
//
Console.WriteLine("支持的操作: + (加), - (减), * (乘), / (除)");
Console.WriteLine("------------------------------------------");
//
bool beContinue = true;
//
while (beContinue)
{
//
Console.Write("请输入第一个数字: ");
//
double num1 = Convert.ToDouble(Console.ReadLine());
//
Console.Write("请选择运算符 (+, -, *, /): ");
//
string fuhao = Console.ReadLine();
//
Console.Write("请输入第二个数字: ");
//
double num2 = Convert.ToDouble(Console.ReadLine());
//
double result = 0;
//
switch (fuhao)
{
//
case "+": result = num1 + num2; break;
//
case "-": result = num1 - num2; break;
//
case "*": result = num1 * num2; break;
//
case "/": result = num1 / num2; break;
//
default:
Console.WriteLine("错误:无效的运算符!请使用 +, -, *, 或 /。");
break;
}
//
Console.WriteLine($"结果: {num1} {fuhao} {num2} = {result}");
//
Console.WriteLine("----------------------------");
//
Console.Write("是否继续计算?(按 y 继续,按回车键退出): ");
//
string userChoice = Console.ReadLine();
//
if (userChoice != "y" && userChoice != "y")
{
//
beContinue = false;
}
}
//
Console.WriteLine("感谢使用计算器,再见!");
//
Console.ReadKey();
案例3:折纸多少次厚度超过珠穆朗玛峰
已知:
- 一张纸的厚度是 0.1 毫米
- 珠穆朗玛峰的高度是 8848 米(8848000 毫米)
要求:
- 单位统一:把高度都换算成 毫米 来计算。
- 使用 C# 编写程序,用 while (true) 循环 实现。
- 每对折一次,纸张厚度翻倍。
- 当纸张厚度 大于等于 珠穆朗玛峰高度时,退出循环。
- 输出:一共需要对折多少次,才能超过珠穆朗玛峰的高度。
using System;
class PaperFold
{
static void Main()
{
// 1. 定义初始变量
double paperThickness = 0.1; // 纸的厚度:0.1毫米
int foldCount = 0; // 对折次数,初始为0
// 珠峰高度(换算成毫米,方便计算)
const double EverestHeight = 8848 * 1000;
Console.WriteLine("📄 开始折纸,目标:超过珠穆朗玛峰高度!");
Console.WriteLine($"----------------------------------------");
// 2. while 循环条件为 true(无限循环)
while (true)
{
// 3. 核心逻辑:对折一次,厚度翻倍
paperThickness *= 2;
foldCount++; // 次数+1
// 4. 输出每次对折的结果
Console.WriteLine($"第 {foldCount} 次对折后,厚度:{paperThickness:N0} 毫米");
// 5. 退出条件:当厚度 >= 珠峰高度时,退出循环
if (paperThickness >= EverestHeight)
{
Console.WriteLine("\n✅ 达到目标!循环停止。");
break; // 用 break 退出 while(true) 循环
}
}
// 6. 最终结果输出
Console.WriteLine("========================================");
Console.WriteLine($"🎉 总共需要对折 **{foldCount}** 次!");
Console.WriteLine($"此时纸张厚度:{paperThickness / 1000:N2} 米");
}
}
案例3:统计正数个数(输入0结束)
int positiveCount = 0;
while (true)
{
Console.Write("输入数字:");
int num = int.Parse(Console.ReadLine());
if (num == 0)
break;
if (num > 0)
positiveCount++;
}
Console.WriteLine("正数个数:" + positiveCount);
项目1:计算器
要求:创建一个能进行连续加减乘除运算的控制台计算器。
功能:
- 欢迎界面。
- 支持加法 (+), 减法 (-), 乘法 (*), 除法 (/)。
- 处理除法除零错误。
- 支持连续计算(询问用户是否继续)。
- 用户输入错误时给出友好提示。
代码实现 (Program.cs)
// 显示欢迎信息
Console.WriteLine("欢迎使用简易计算器!");
Console.WriteLine("支持的操作: + (加), - (减), * (乘), / (除)");
Console.WriteLine("------------------------------------------");
// 使用一个布尔变量控制程序是否继续运行
bool continueCalculating = true;
while (continueCalculating)
{
try // 使用 try-catch 来捕获输入格式错误
{
// 1. 获取第一个数字
Console.Write("请输入第一个数字: ");
double num1 = Convert.ToDouble(Console.ReadLine());
// 2. 获取运算符
Console.Write("请选择运算符 (+, -, *, /): ");
string op = Console.ReadLine();
// 3. 获取第二个数字
Console.Write("请输入第二个数字: ");
double num2 = Convert.ToDouble(Console.ReadLine());
// 4. 进行计算并显示结果
double result = 0;
bool validOperation = true; // 标记运算是否有效
// 使用 switch 语句根据不同的运算符执行不同的计算
switch (op)
{
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
// 检查除数是否为零
if (num2 == 0)
{
// 除数为零是一种特殊的错误,单独处理
Console.WriteLine("错误:除数不能为零!");
validOperation = false;
}
else
{
result = num1 / num2;
}
break;
default:
// 如果用户输入的运算符不是 +, -, *, / 中的任何一个
Console.WriteLine("错误:无效的运算符!请使用 +, -, *, 或 /。");
validOperation = false;
break;
}
// 如果运算有效,才打印结果
if (validOperation)
{
Console.WriteLine($"结果: {num1} {op} {num2} = {result}");
}
}
catch (FormatException) // 捕获输入格式不对的异常(例如输入了字母)
{
Console.WriteLine("错误:请输入有效的数字!");
}
catch (Exception ex) // 捕获其他未知异常
{
Console.WriteLine($"发生意外错误: {ex.Message}");
}
finally
{
// 无论是否出错,都执行下面的代码
Console.WriteLine("------------------------------------------");
}
// 5. 询问用户是否继续
Console.Write("是否继续计算?(按 y 继续,按其他键退出): ");
string userChoice = Console.ReadLine().ToLower(); // 转换为小写,方便判断
if (userChoice != "y" && userChoice != "y")
{
continueCalculating = false; // 如果用户不输入'y',则改变循环条件,退出程序
}
Console.WriteLine(); // 打印一个空行让界面更清晰
}
// 告别信息
Console.WriteLine("感谢使用计算器,再见!");
// 防止控制台窗口立即关闭,等待用户按任意键
Console.ReadKey();