将if语句转换为pascal的大小写?

Convert if statement to case of in pascal?

我正在使用 pascal,你可以将这段代码语句转换为大小写吗?在帕斯卡? 这是我在 Pascal 上的程序,if 语句的大小写。

非常感谢

TYPE
        MHS = record
        nama1,nama2:string;
        ipk1,ipk2:longint;
        nim1,nim2:integer;
end;
var
        DataMhs : MHS;
Begin

    clrscr;
    write('Masukan Nama Mahasiswa 1 : ');
    readln(DataMhs.nama1);
    write('Masukan NIM Mahasiswa 1 : ');
    readln(DataMhs.nim1);
    write('Masukan IPK Mahasiswa 1 : ');
    readln(DataMhs.ipk1);

    write('Masukan Nama Mahasiswa 2 : ');
    readln(DataMhs.nama2);
    write('Masukan NIM Mahasiswa 2 : ');
    readln(DataMhs.nim2);
    write('Masukan IPK Mahasiswa 2 : ');
    readln(DataMhs.ipk2);

    if DataMhs.ipk1 > DataMhs.ipk2 then
        write('IPK ',DataMhs.nama1,'Lebih besar')
    else if DataMhs.ipk2 > DataMhs.ipk1 then
        write('IPK ',DataMhs.nama2,'Lebih besar')
    else
        write('IPK ',DataMhs.nama1,' dengan ',DataMhs.ipk2,' SAMA');

    readln;
end.

不知道怎么转换,求助。哈哈

如果你想让你的代码更好看,那么你可以使用它 -->

with DataMhs do
 begin
      if ipk1 > ipk2 then write('IPK ',DataMhs.nama1,'Lebih besar');
      else if ipk1 < ipk2 then write('IPK ',DataMhs.nama2,'Lebih besar');
      else write('IPK ',DataMhs.nama1,' dengan ',DataMhs.ipk2,' SAMA');
 end; 

但我不认为 案例

对此很有用。因为大小写用于 已知值 例如:

case a of
     1: Writeln(' Some code here') ;
     2: Writeln(' Some code here') ;
     3: Writeln(' Some code here') ;
     4: Writeln(' Some code here') ;

     else Writeln(' That is used for other values. ');
end;

这种情况不能用大小写。

怀疑您的想法可能类似于以下内容:

type
  TCompareResult = (cmpLeftGreater, cmpRightGreater, cmpEqual);

case CompareInts(DataMhs.ipk1, DataMhs.ipk2) of
  cmpLeftGreater:
    write('IPK ', DataMhs.nama1, 'Lebih besar');
  cmpRightGreater:
    write('IPK ', DataMhs.nama2, 'Lebih besar');
  else {cmpEqual}
    write('IPK ', DataMhs.nama1, ' dengan ', DataMhs.ipk2, ' SAMA');
end;

但是,您仍然需要实现这个 CompareInts 函数,它仍然需要使用您在原始代码中已有的相同条件结构:

function CompareInts(left, right: Integer): TCompareResult;
begin
  if left > right then
    Result := cmpLeftGreater
  else if right > left then
    Result := cmpRightGreater
  else
    Result := cmpEqual;
end;

因此,该功能并没有真正让您受益。