Docs

  • WSOFT Docs
  • あみうは
    • あみうは
    • 新学期が始まりました!
    • 恋の相談
    • プチコン3号で作ったのは?
    • オススメの文庫
    • マクドナルド最高!
    • ios11β レビュー
    • あみうはの歌について
    • ついに自分のソフトウェアのホームページができました。
    • Windowsタブレットをリセットして起動しなくなった人のために
    • PCレスで YouTubeの曲を携帯mp3プレイヤーで聴く(iPhone)
    • 食べられないラズベリーパイを買いました。(1)
    • ラズベリーパイの下ごしらえ(2)
    • 小説始めます~
    • 女子がキュンとくる行動ベスト3!!
    • MacとWindowsについてあまり知られていない事
    • macでできる裏技
    • ドコモの格安スマホ「MONO」買っちゃいました☆いい所をいくつか
    • 『レビュー』iPhone6sを1年間使い続けて思ったこと
    • iPhoneの拡大鏡に関するバクを発見しました。
    • iPhoneで圧縮ファイルを作成したり解凍する方法
    • Obscura2が今だけ無料!使い方まとめ
    • Windowsタブレットがブルースクリーンになった時のメモ
    • お知らせ
      • あみうはからのお知らせ
      • あみうは ブログ始めました。
      • 予告 web ページの更新について 🇯🇵ver 2.0.0.jp Deep Space 🇺🇸ver 2.0.0 Deep Space
      • あみうはショップから大切なお知らせ
      • みんなの投稿サービス終了のお知らせ
      • あけましておめでとうございます
      • あみうはホームページをアップデートしました。
      • あみうは はついに1周年を迎えました!!1年間を振り返ります!
      • あみうはダウンロードの閉鎖について
      • 特定商取引法に基づく表記
      • あみうは系サイトの閉鎖について
  • ブログ
    • ブログ
    • WSOFT AdventWeek 2022のお知らせ
    • DiscordのBotは多重人格の夢を見るか?
    • WSOFTのアイコンを入手する
    • WSOFTDocs へようこそ
    • WSOFTの製品の一覧
    • wsoft.wsへのドメイン移行に関する情報
    • WSOFTのロゴ変更に関する情報
    • WSOFTのドキュメントの WSOFT Docs への移行に関する情報
    • Raspberry Pi初代やZeroでAliceScriptを実行する
    • Losetta0.9.16に更新した後のエラーを直す
    • WSOFT AdventWeekへようこそ
  • 共同作成ガイド
    • 概要
    • コントリビュータ行動規範
    • リンクの使い方
    • Markdownリファレンス
    • メタデータ
    • テキストの書式設定に関する指針
  • 法的資料
    • 法的資料
    • Alice-EULA-R
    • WSOFT-EULA
    • WSTube エンドユーザー利用規約
    • あみうは利用規約
    • WSOFTダウンロードセンター利用規約
    • 使用条件
  • 製品
    • 製品
    • PCMX
      • ブートローダーメニューの使い方
    • WSOFTアカウント
      • WSOFTアカウントの概要
      • WebからWSOFTアカウントにログインする
      • WindowsアプリからWSOFTアカウントにログインする
      • WSOFTオンライン手続きの概要
    • AliceScript
      • AliceScript
      • 謝辞
      • ダウンロード
      • Alice(キャラクター)
      • AliceScriptのツアー
      • Wikiの概要
      • APIブラウザー
        • APIブラウザー
        • Alice
          • delay
          • exit
          • function
          • import
          • include
          • lock
          • print
          • string_format
          • using
          • write
          • Environment
            • env_commandLine
            • env_commandLineArgs
            • env_set_exitCode
            • env_hasshutdownstarted
            • env_Is64BitOperatingSystem
            • env_Is64BitProcess
            • env_MachineName
            • env_NewLine
            • env_os_platform
            • env_os_version
          • Exception
            • Exception
            • ErrorCode
            • Message
            • ToString
          • Interpreter
            • Type
              • Type
              • Activate
              • Base
              • IsObject
              • Namespace
              • ToNativeProperty
              • ToString
          • Math
            • math_abs
            • math_acos
            • math_acosh
            • math_atan
            • math_atan2
            • math_atanh
            • math_bitdecrement
            • math_bitincrement
            • math_cbrt
            • math_celling
            • math_clamp
            • math_copysign
            • math_cos
            • math_cosh
            • math_e
            • math_exp
            • math_floor
            • math_fusedmultiplyadd
            • math_isprime
            • math_max
            • math_min
            • math_pi
            • math_pow
            • math_round
            • math_sin
            • math_sinh
            • math_sqrt
            • math_tan
            • math_tanh
            • math_tau
            • math_truncate
          • Net
            • web_download_file
            • web_download_file
            • web_download_text
            • web_htmldecode
            • web_htmlencode
            • web_send_ping
            • web_upload_data
            • web_upload_file
            • web_upload_text
            • web_urldecode
            • web_urlencode
          • Security
            • password_hash
            • password_hash_data
            • password_salt
            • password_verify
            • password_verify_data
          • Threading
            • signal
            • signal_wait
            • task_run
            • thread_id
            • thread_queue
        • Array
          • array
          • Add
          • AddRange
          • All
          • Any
          • Contains
          • Distinct
          • Except
          • First
          • Flatten
          • Foreach
          • IndexOf
          • Insert
          • InsertRange
          • Intersect
          • Last
          • Length
          • Merge
          • OfType
          • OrderBy
          • OrderByDescending
          • Remove
          • RemoveAt
          • RemoveRange
          • Reverse
          • Select
          • SequenceEqual
          • Size
          • Skip
          • SkipWhile
          • Sort
          • Take
          • TakeWhile
          • Union
          • Where
        • Bool
          • bool
        • Bytes
          • bytes
        • Delegate
          • delegate
          • BeginInvoke
          • Invoke
        • None
          • none
        • Number
          • number
        • String
          • string
          • CompareTo
          • Contains
          • EndsWith
          • Format
          • IndexOf
          • Insert
          • IsEmptyOrNull
          • IsEmptyOrWhite
          • IsNormalized
          • Join
          • LastIndexOf
          • Normalize
          • PadLeft
          • PadRight
          • Remove
          • RemoveAt
          • Replace
          • Split
          • StartsWith
          • SubString
          • ToLower
          • ToLowerInvariant
          • ToUpper
          • ToUpperInvariant
          • Trim
          • Trim
          • TrimStart
        • Variable
          • variable
          • Clone
          • Convert
          • DeepClone
          • Dispose
          • Equals
          • Properties
          • ToString
          • Type
      • 変更履歴
        • 新機能の一覧
        • AliceScript GoldenMasterの新機能
        • AliceScript 2.1の新機能
        • AliceScript 2.2の新機能
        • 互換性に影響を与える変更点
        • Nightyビルドの変更履歴
        • AliceScript RC2の新機能
        • Losetta
          • Losettaの更新履歴
          • Losetta 0.9.15
          • Losetta 0.9.16
          • Losetta 0.9.17
          • Losetta 0.9.18
          • Losetta 0.9.19
          • Losetta 0.9.20
      • 基本
        • 基本
        • AliceScript ADK
        • AlicePackage
        • AliceSister
        • AliceSister
        • AliceScriptのコーディング規約
        • イベント
        • 例外
        • 式
        • 前処理指令
        • AliceModel
        • 変数
      • Alice in Discord
        • Alice in Discordの紹介
        • Alice in Discordの基礎
        • Alice in Discord コミュニティガイドライン
        • Alice in Discordに関連するプロジェクトの一覧
      • 相互運用
        • 基本的なAliceScriptライブラリの開発
      • チュートリアル
        • チュートリアル
        • 初めてのAliceScript
        • パッケージのビルド
        • 数値型の計算誤差
        • 自分自身の関数を取得する
        • AlicePackageの関連付け
        • WSOFTScriptからの移行
        • AliceScriptで安全にパスワードを保存する
        • Losettaを更新する
    • ダウンロードセンター
      • WSOFTダウンロードセンターの概要
      • API
      • 検索
      • マネージャー
        • WSOFTダウンロードセンターマネージャーの概要
        • 更新履歴
          • WSOFTダウンロードセンター管理端末の更新情報
          • バージョン50
          • バージョン53
    • ほめて.ws
      • ほめて.wsの概要
    • アイコンメーカー
      • アイコンメーカーの概要
    • WSOFTScript
      • WSOFTScript
      • WSOFTScript 0.07 R3
      • WSOFTScript 0.07 R4
      • WSOFTScript 2020 LTSの情報
      • WSOFTScriptのライフサイクル
      • 使用されているLosettaのバージョンを確認する
      • WSOFTScript Pocket 2020 Beta
      • Shangri-la 0.07 R4
      • Shangri-la 2020 LTS
    • Unidet
      • Unidetへようこそ
    • WebSailing
      • WebSailing
      • 謝辞
      • APIブラウザー
      • 更新履歴
        • WebSailingNXの更新情報
        • NX 83
        • NX 104.1
        • NX 105
        • NX 105.1
        • NX 106
        • NX 106.1
        • NX 106.2
        • NX 107
        • NX 107.1
        • NX 107.2
        • NX 108
        • NX 109
        • NX 110
        • NX 110.1
        • NX 110.2
        • NX 110.3
        • NX 111
      • GL
        • WebSailingの仕様について(GL系のみ)
        • 更新履歴
          • WebSailingGLの更新情報
          • 1.5.01
          • 1.5.02
          • 1.5.03
          • 1.5.04
          • 1.5.05
          • 1.5.06
          • 2.0
          • 2.1
          • 3.0
          • 20Edition
        • ガイド
          • WebSailingGLプロンプトリファレンス
          • エラーコードE001
          • エラーコードE002
          • エラーコードE003
          • エラーコードU001
          • エラーコードU002
          • WebSailingGLで特定のUrlをブロックする方法
          • WebSailingを更新する方法
          • WebSailingヘルプ
          • WebSailingのコンポーネント変更についてのお知らせ
          • WebSailingプロンプトを極める!その1 API を極める
      • NX(レガシー)
        • WebSailingNX(レガシー)
        • 更新履歴
        • 開発者向け
          • サービス終了後も拡張機能を実行する方法
          • プラグインからSafeBrowsingAPIを呼び出す
          • プラグインガードの概要
        • ガイド
          • WebSailingNXターミナルリファレンス
          • PlusLibraryでライブラリエラー500が発生する場合
          • 認識エラーM300が発生する場合
          • WebSailingのキャッシュを削除する
          • 全画面表示を使う方法
          • WebSailingヘルプ
          • WIWで、NXツールを使う
          • おまけ
          • 捕捉されなかった例外が発生しましたと表示される場合
        • PlusLibrary
          • WSTubeMOD
          • 携帯電話モード
          • 郵便番号検索
      • チュートリアル
        • チュートリアル
        • 起動時に使用される設定を構成する
        • 設定が原因で起動できないと考えられる場合の対処方法
        • WebSailingのWindows7/8.1 Server2012/R2のサポート終了に関するお知らせ
        • AliceScriptを使ってWebSailingを制御する
    • WSNET
      • WSNET
      • WSNETの概要
      • ニュース
        • ニュース
        • WSNET/WAN DHCP機能提供開始
        • WSOFTダウンロードセンターマネージャー v42リリース
        • WSNETDocs提供開始
        • WSOFTダウンロードセンターマネージャーのWSOFTダウンロードセンターマネージャーDocsへの移行に関するお知らせ
      • チュートリアル
        • チュートリアル
        • SoftEtherを使用してWSWANに接続する
        • OpenVPNを使用してWSWANに接続する
        • 証明書のインストール
    • WSTodon
      • WSTodonの概要
      • よくある質問と回答
    • WSTube
      • WSTubeの紹介
      • クレジット
      • WSTube ユーザーガイド
      • お知らせ
        • WSTube NEXTの紹介
        • WSTube NEXT Procyonの紹介
        • WSTube NEXT October’2019の紹介
    • Lantana
  • 生存報告
    • 生存報告
    • 22年度1学期
      • 生存報告
      • イントロダクション
      • おやすみ。
      • 生存報告
      • つながり
      • 生存報告論
      • その一言で、
      • 信じるということ
      • またね。
    • 22年度2学期
      • やさしさ
      • 心の城
      • 勤労感謝の日
      • 自分のことを助けられるのは自分しかいない
      • 大丈夫は大丈夫じゃない
      • おしごと
      • 大きなものは無視できない
      • 石ころの唄
      • 表裏一体
目次
  • 代入演算子
  • 算術演算子
    • インクリメント演算子
      • 後置インクリメント演算子
    • デクリメント演算子
      • 後置インクリメント演算子
    • 単項プラス演算子と単項マイナス演算子
    • 加算演算子
    • 減算演算子
    • 乗算演算子
    • 除算演算子
    • べき乗演算子
    • 複合代入
  • 文字列連結
  • 配列の連結または追加
  • デリゲートの組み合わせ
  • ラムダ演算子
  • 等値演算子
    • 等値演算子
    • 非等値演算子
  • 比較演算子
    • 小なり演算子
    • 大なり演算子
    • 以下演算子
    • 以上演算子
  • 論理演算子
    • 論理否定演算子
    • 論理積演算子
    • 論理和演算子
    • 排他的論理和演算子
  • Null合体演算子
  • 型一致演算子
  • 型変換演算子
  • 条件演算子
    • 条件演算子とIf文

式

  1. WSOFTDocs
  2. 製品
  3. AliceScript
  4. 基本
  5. 式

式は、AliceScriptにおけるもっとも重要かつ基本的な要素です。


たい | 2021-12-25

AliceScriptにおいて、ほとんどのものは式で記述されます。ここでは式を値があるものすべてと定義します。

変数に定数を代入するもっとも単純な例を次に示します。

AliceScript
var a = 1;

以上の例は、変数aを定義し、そこに1を代入します。1は、明らかに1という値です。言い換えると1は1という値を表す式なのです。 この代入の後、当然aの値は1であることが期待されます。そのためvar b = a;と書いたときもまたb = 1;と同じ動作をします。

ここでの=は代入演算子と呼ばれる演算子です。これはひとつあるいはふたつあるいは複数の値の操作に用いられます。 AliceScriptには多数の演算子が用意されています。これらの演算子の多くは標準でAliceScriptに組み込まれていて、変数や値を使用して基本的な操作を実行できます。演算子には様々な種類があります。

代入演算子

代入演算子は、AliceScriptでおそらく最も頻繁に使用されるであろう演算子です。これは指定された変数に値を代入します。次の例を参照してください。 

AliceScript
a = 1;

この例はaという名前の変数に1を代入するということを意味しています。この式が正しく評価されるには、すでにaという名前の変数が定義されていることが必要です。なぜなら、この式は変数aを見つけて、それに代入するという式だからです。

変数を定義するには、varキーワードとともに変数に代入します。次に例を示します。

AliceScript
var a = 1;

算術演算子

次の演算子は、数値型の変数を使用して算術演算を実行します。

インクリメント演算子

単項インクリメント演算子++は変数をひとつずつインクリメントします。インクリメントとは、その値に1を加算することを指します。

後置インクリメント演算子

次の例に示すように、x++の結果はxのインクリメント前の値です。

AliceScript
var x = 0;
print(x);   //出力:0
print(x++); //出力:0
print(x++); //出力:1

デクリメント演算子

単項デクリメント演算子--は変数をひとつずつデクリメントします。デクリメントとは、その値に1を加算することを指します。

後置インクリメント演算子

次の例に示すように、x--の結果はxのデクリメント前の値です。

AliceScript
var x = 3;
print(x);   //出力:3
print(x--); //出力:3
print(x--); //出力:2

単項プラス演算子と単項マイナス演算子

単項プラス演算子+ではその値が返されます。単項マイナス演算子-ではその値の否定が返されます。 次の例を参照してください。

JavaScript
print(+1);  //出力:1
print(-1); //出力:-1

加算演算子

加算演算子+は、その値と他の値の和を返します。

JavaScript
print(1+1);//出力:1

減算演算子

減算演算子-は、その値と他の値の差を返します。

JavaScript
print(2-1);//出力:1

乗算演算子

乗算演算子*は、その値と他の値の積を返します。

JavaScript
print(2*4);//出力:8

除算演算子

除算演算子/は、その値と他の値の商を返します。

JavaScript
print(6/2);//出力:3

べき乗演算子

べき乗演算子**は、その値を他の値のべき乗した値を返します。

JavaScript
print(2**2);//出力:4

複合代入

多くの算術演算子は、複合代入をサポートします。算術演算子をopと置いた場合、次のふたつの式は等価です。

AliceScript
x op= y;
AliceScript
x = x op y;

文字列連結

一方または両方の値が文字列型の場合、+演算子によってその値の文字列表現が連結されます。次に例を示します。

JavaScript
print("Hello,"+"World.");
//出力:Hello,World.

配列の連結または追加

左辺の変数が配列型の場合、右辺が配列型ならその配列が連結され、それ以外の型なら左辺の配列に右辺の項目が追加されます。次に例を示します。

AliceScript
var arr = ["a","b"];
print(arr);//出力:a,b
arr += "c";
print(arr);//出力:a,b,c

デリゲートの組み合わせ

左辺と右辺の両方がデリゲート型の場合、左辺のデリゲートと右辺のデリゲートが結合された新しいデリゲートが返されます。次に例を示します。

AliceScript
var del1 = ()=>{
  print("Hello");
};
var del2 = ()=>{
  print("World");
};

var del = del1 + del2;
del.Invoke();
//出力:Hello
//    World

ラムダ演算子

ラムダ演算子=>は、ラムダ式の定義時に、左側の引数指定部と右側の式本体を分ける機能を持ち、それ以外の機能はありません。詳細については、ラムダ式を参照してください。

等値演算子

等値演算子は左右の値が等しいかどうかを判断し、それに応じた値を返します。

等値演算子

等値演算子==または===は左右の値が等しい場合はtrueを返し、それ以外の場合はfalseを返します。次に例を示します。

AliceScript
print(1==1);//出力:true

非等値演算子

非等値演算子!=または!==は左右の値が異なる場合はtrueを返し、それ以外の場合はfalseを返します。この演算子は等値演算子の論理反転と捉えることができます。次に例を示します。

AliceScript
print(1!=2);//出力:true

比較演算子

関係演算子とも呼ばれていて、その値の比較に使用されます。これらの演算子は数値型のみに使用することができます。

小なり演算子

小なり演算子<は、左側の値が右側の値より小さい場合はtrueを、それ以外の場合はfalseを返します。次に例を示します。

AliceScript
print(1<2);//出力:true

大なり演算子

大なり演算子>は、左側の値が右側の値より大きい場合はtrueを、それ以外の場合はfalseを返します。次に例を示します。

AliceScript
print(2>1);//出力:true

以下演算子

以下演算子<は、左側の値が右側の値以下である場合はtrueを、それ以外の場合はfalseを返します。次に例を示します。

AliceScript
print(1<=2);//出力:true

以上演算子

以上演算子>は、左側の値が右側の値以上である場合はtrueを、それ以外の場合はfalseを返します。次に例を示します。

AliceScript
print(2>=1);//出力:true

論理演算子

次の演算子は、ブール型の値について論理演算を行います。

論理否定演算子

論理否定演算子!は、単項の接頭辞でその値の論理否定が計算されます。次に例を示します。

AliceScript
print(!true);//出力:false

論理積演算子

論理積(論理AND)演算子&または&&は、左右の値の両方がtrueと評価された場合のみtrueを返し、それ以外の場合falseを返します。&演算子と&&演算子との唯一の違いは後者は左辺がfalseと評価された場合右辺の評価は行われないことです。次に例を示します。

AliceScript
print(true&true); //出力:true
print(true&false);//出力:false

論理和演算子

論理和(論理OR)演算子|または||は、左右の値の少なくとも一方がtrueと評価された場合にtrueを返し、それ以外の場合にfalseを返します。|演算子と||演算子との唯一の違いは後者は左辺がtrueと評価された場合右辺の評価は行われないことです。次に例を示します。

AliceScript
print(true|false); //出力:true
print(false|false);//出力:false

排他的論理和演算子

排他的論理和(論理XOR)演算子^は、左右の値が異なると評価された場合(すなわち、片方がtrueと評価されたならばもう片方がfalseと評価される場合)にtrueを返し、それ以外の場合はfalseを返します。次に例を示します。

AliceScript
print(true^false);//出力:true
print(true^true); //出力:false

Null合体演算子

Null合体演算子は、左の値がnullでない場合その値を返し、それ以外の場合は右の値が評価され返されます。次に例を示します。

AliceScript
var v = "ABC";
print(v??"Hello,World");//出力:ABC
v = null;
print(v??"Hello,World");//出力:Hello,World

型一致演算子

型一致演算子isは、左辺の値の型が右辺の値の表す型と一致するか、右辺の値の型と一致する場合はtrueを、それ以外の場合はfalseを返します。次に例を示します。

AliceScript
string str = "Hello,World";
if(str is string)
    {
        print(str);
    }
//出力:Hello,World

型変換演算子

型変換演算子asは、左辺の値を右辺の表す型に変換します。右辺はtype型である必要があり、型変換に失敗した場合はnullを返します。次に例を示します。

AliceScript
number num = 12345;
print(num.type);//出力:NUMBER
var str = (num as string);
print(str.type);//出力:STRING

条件演算子

条件演算子(三項条件演算子)?:は、論理式を評価し、論理式の評価結果(trueまたはfalse)に応じて続く二つの式のいずれかの結果を返します。まずは次の例を参照してください。

AliceScript
var todo = 現在の気温 > 30.0 ? "エアコンを入れる" : "エアコンを切る";
print("todo={0}",todo);
//出力例
//現在の気温が20℃の場合 : todo=エアコンを切る
//現在の気温が32℃の場合 : todo=エアコンを入れる

上記の例では、現在の気温が30℃以上の場合、todoに「エアコンを入れる」が代入されます。

この例のように、この条件演算子の構文は次のようになります。

構文
条件 ? 結果A : 結果B
条件式は、論理式でtrueまたはfalseのどちらかと評価される必要があります。条件がtrueと評価された場合は、結果Aの式が評価され、条件がfalseと評価された場合は、結果Bの式が評価され、それらの結果が演算の結果として返されます。結果Aと結果Bの両方が評価されることはありません。

AliceScriptRC1時点で、条件演算子に複数の条件演算が含まれる処理は実行できません。つまり、次の式は正しく評価することができません。

AliceScript
a ? b : c ? d : e

条件演算子とIf文

条件演算子を使用すると、いままでIf文を使用して行ってきたことの一部を簡潔な形で書き直すことができます。If文と条件演算子を状況に応じて使い分けると、よりコードが読みやすくなります。次の例を参照してください。

AliceScript
if(今日の天気 == 晴れ) 
  {
   todo = "公園に行き";
  }
else
  {
   todo = "家にい";
  }
print("今日は、{0}ます。",todo);
//出力例
//今日の天気が晴れの場合 : 今日は、公園に行きます。
//今日の天気が曇りの場合 : 今日は、家にいます。

上記の例は、現在の天気が晴れであれば、todoに「公園に行き」が代入され、「今日は、公園に行きます。」が表示されます。 それ以外の場合では、todoに「家にい」が代入され、「今日は、家にいます。」が表示されます。

このコードを条件演算子を用いた書き方にすると次の例のようになります。

AliceScript
(今日の天気 == 晴れ) ? todo = "公園に行き" : todo = "家にい";
print("今日は、{0}ます。",todo);

これはただ単にIf文を条件演算子に書き換えただけで、あまりよい使用方法とは言えません。条件演算子の値を返すという特性を使用すれば、次の例のように書き換えることもできます。

AliceScript
todo = (今日の天気 == 晴れ) ? "公園に行き" : "家にい";
print("今日は、{0}ます。",todo);

上記の例のように左辺に対して条件演算の結果を代入したほうが、より簡潔かつ分かりやすくなります。条件演算子をまだよく理解していない人のためにコメントを書いておくとより良いでしょう。

条件演算子は行数を短くするよりも、他の人がコードを読んだときに簡単に理解できるようになることを期待して導入されました。基本的には、If文を使用し、条件演算子はそれを使用することで簡潔にわかりやすくなる場合のみ使用するべきです。

検索
No results found