使用break与continue语句和for与continue语句

时间:2022-01-21 09:33:05

unit UDemo33;
//使用break与continue语句和for与continue语句
//※  利用while循环和break语句,求前多少个自然数(项数)平方之和大于指定的正数。
//※  利用for循环和continue语句,在26个小写字母中依次选择其ASCII为偶数的字母
//    组成的字符串。


//求项数的算法:
//声明局部整体变量:i表示循环变量,Sum表示求和,Max表示输入的值。
//①  用InputQuery输入Max,如果未完成输入操作或Max<=0,则返回应用程序。
//②  设置初值:i=1,sum=0。
//③  累加当前i的平方到Sum。
//④  如果Sum>Max,则执行break转到步骤6。
//⑤  i增值1,并转到步骤3。
//⑥  组织字符串,并在标签组件上输出i的值。
//
// 求字符串算法:
//  声明局部字符串变量S表示所求的字符串,声明局部字符型变量Ch表示连接到S的字符。
//①  设置初值:S='';
//②  对于Ch等于a到z,进行到步骤4。
//③  如果Ch的ASCII码(ord(ch))为奇数,则执行continue转到步骤2.
//④  连接Ch到S,并转到步骤2。
//⑤  组织字符串,并在标签组件上输出S。
//
//


interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TDemo33Form = class(TForm)
    btnTerm: TButton;
    btnString: TButton;
    btnEnd: TButton;
    lblOutput: TLabel;
    procedure btnEndClick(Sender: TObject);
    procedure btnTermClick(Sender: TObject);
    procedure btnStringClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Demo33Form: TDemo33Form;

implementation

uses
  QDialogs;

{$R *.dfm}

procedure TDemo33Form.btnEndClick(Sender: TObject);
begin
  Close();
end;

procedure TDemo33Form.btnTermClick(Sender: TObject);
var
  i,Sum,Max:integer;
begin
  Max:=10;
  if InputQuery('输入对话框','键入正整数Max',Max) and (Max>0) then
  begin
    i:=1;Sum:=0;
    While True do
    begin
      Sum:=Sum+i*i;
      if Sum>Max then break;
      inc(i);
    end;
    lblOutput.Caption:='前'+IntToStr(i)+'个自然数平方和大于'+IntToStr(Max);
  end;

end;

procedure TDemo33Form.btnStringClick(Sender: TObject);
var
  S:String;
  Ch:Char;
begin
  S:='';
  for Ch:='a' to 'z' do
  begin
    if odd(ord(ch)) then continue;
    S:=S+Ch;    //连接一个字符到S
  end;
  lblOutput.Caption:='ASCII码

end;

end.

使用break与continue语句和for与continue语句