You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ada主程序代码重复优化:如何消除输出语句重复冗余问题

有两种符合要求的实现方案,都不会修改Character_Check函数的输入输出职责,同时完全消除字符串前缀的重复代码:

方案1:拆分公共输出段(无额外函数,改动最小)

直接将固定前缀You typed 单独提取输出,再根据函数返回结果输出对应布尔值的文本即可:

with Ada.Text_IO; use Ada.Text_IO;

procedure TF is

   function Character_Check return Boolean is  
      Check : Character; 
   begin
      Get(Check);
      -- 可顺便简化原有冗余的if判断逻辑
      return Check = 'T';
   end Character_Check;
   
begin
   Put("Type F or T (For False or True): ");
   -- 公共前缀只写一次
   Put("You typed ");
   if Character_Check then
      Put("True");
   else
      Put("False");
   end if; 
end TF;

方案2:封装布尔值转文本工具函数(适合多场景复用)

如果项目中多处需要将布尔值转换为True/False文本,可以单独封装一个纯转换逻辑的工具函数,不会涉及任何IO操作,符合你的限制要求:

with Ada.Text_IO; use Ada.Text_IO;

procedure TF is

   function Character_Check return Boolean is  
      Check : Character; 
   begin
      Get(Check);
      return Check = 'T';
   end Character_Check;

   -- 纯转换逻辑,无IO操作,不违反限制
   function Boolean_To_Display_Str(Value : Boolean) return String is
   begin
      return (if Value then "True" else "False");
   end Boolean_To_Display_Str;
   
begin
   Put("Type F or T (For False or True): ");
   -- 单句完成输出,完全消除重复代码
   Put("You typed " & Boolean_To_Display_Str(Character_Check));
end TF;

内容的提问来源于stack exchange,提问作者leun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 15:21:00