6

友達からこのサイトに案内されました。

Delphiで使用しようとしていますandが、何か問題があるようです。何か使う必要があるものはありますか?

私は次のコードを持っています:

procedure TForm1.Button1Click(Sender: TObject);
var
a,b:string;
begin
a:=edit1.Text;
b:=edit2.Text;

if a=abc and b=def then
showmessage(a+b);

end;

2番目の=記号でエラーが発生します

4

4 に答える 4

34

演算子の優先順位を変更するには、いくつかの括弧を入れる必要があります。

  if (a=abc) and (b=def) then

演算子andが先行する=ため、括弧なし a=(abc and b=def)の構文は構文エラーを生成すると理解されます。

于 2011-03-30T15:40:07.243 に答える
11

andより優先順位が高い=。となり、有効ではありませんif a=abc and b=def thenif a=(abc and b)=def thenのように書きますif (a=abc) and (b=def) then

于 2011-03-30T15:47:56.120 に答える
8

Delphiの演算子の優先順位規則は、あなたをつまずかせています。4 つのレベルがあります。

  1. @、 いいえ
  2. *、/、div、mod、および、shl、shr、as
  3. +、-、または xor
  4. =、<>、<、>、<=、>=、で、

あなたの例では、括弧を使用して等値比較を最初に実行しない限り、AND 比較が最初に実行されます。

式(Delphi) - 演算子の優先順位

于 2011-03-31T23:50:47.913 に答える
2

確かに、文字列から欠落しているアポストロフィがあります-ステートメントは次のようになります

if(a ='abc')and(b ='def')then..。

于 2011-03-31T05:28:05.593 に答える