31
53

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

プログラミング言語の基本文法チートシートのチートシートを作ってみた

Last updated at Posted at 2018-04-23

なにこれ?

複数の言語を学習してみると、書き方はともあれ、
どの言語にも制御構文とか変数宣言とか算術演算とか、
文法の共通概念というものがあることがわかる。

ということはこれから新しい言語を学ぶ際に、
その共通概念が、学習する言語でどう書くのかをマッピングしていけば、
従来より簡単に基本文法が習得できるのではないかと思って作ってみた。

なににつかうの?

  • ○○言語基本文法チートシートの雛形
  • 新しい言語を学習するときの、指針
  • 多数の言語を使い分けなきゃいけない人の備忘録

チートシートのチートシート

文法名 詳細 書き方 サンプル
コメント 一行コメント
複数行コメント
コンソール出力 改行あり
改行無し
データ型 文字列(String)
整数(Int)
小数(float)
論理(bool)
日付(date)
変数 定数宣言(変更不可)
変数宣言(変更可)
変数宣言(型推論)
代入
キャスト(型変換)
配列 宣言
初期化
代入
サイズ変更
値コピー
リスト 宣言
代入
要素追加
連想配列(ディクショナリ) 宣言
代入
要素追加
算術演算 和(足し算)
差(引き算)
乗(かけ算)
除(割り算)
商(割り算の商)
余(割り算の余り)
べき乗
整数操作 インクリメント
デクリメント
文字列操作 結合
長さ
切り出し
検索
配列に分割
制御構文(選択) IF文
Switch文/Case文
制御構文(ループ) カウント制御ループ(For)
条件制御ループ(while)
コレクション制御ループ(each)
ループスキップ(continue/skip)
ループ再実行
ループからの早期脱出(break)
例外処理 try catch
finnaly
usingブロック/try-with-resources
関数(メソッド)宣言 戻り値あり
戻り値なし
クラス 宣言
継承
初期化(インスタンス化)
コードブロック クラスブロック
関数ブロック
IFブロック
ループブロック
例外処理ブロック
ライブラリ/モジュール関連 ライブラリ/モジュールの追加
名前空間(パッケージ)の参照追加

チートシートを使って作ったC#基本文法チートシート

文法名 詳細 書き方 サンプル
コメント 一行コメント 先頭を スラッシュ2文字 // 行末まで全部コメント
複数行コメント /* */ で囲う /* この中だけコメント */
コンソール出力 改行あり Console.WriteLine Console.WriteLine("Hello World");
改行無し Console.Write Console.Write("Hello World");
データ型 文字列(String) string string str = "aaa";
整数(Int) int int num = 10;
小数(float) float,double,decimal decimal tax = 10.8;
論理(bool) bool bool flag = true;
日付(date) DateTime DateTime today = DateTime.Today;
変数 定数宣言(変更不可) const + データ型 + 名前 const int x = 0;  
変数宣言(変更可) データ型 + 名前 int x = 0;
変数宣言(型推論) var + 名前 = なんらか; var x = 0;
代入 変数名 = 値 x = 0;
キャスト(型変換) (型名)変数名
または
文字列なら型によっては、型名.Parseが使える
long longNum = 100.2;
int intNum = (int)longNum;
または、
string numString = "100";
int intNum = int.Parse(numString);
配列 宣言 型[] 変数名 = new 型[要素数] string[] strArray = new string[3];
初期化 Json風 string[] strArray = {"a", "b", "c"};
または
string[] strArray = new string[]{"a","b","c"};
代入 名前[配列番号] = 値 string[0] = "hoge";
サイズ変更 Array.Resize(ref 変数, 要素数) Array.Resize(strArray, 10);
値コピー Array.Copy(元変数, 先変数, 要素数) Array.Copy(src, dest, 10);
リスト 宣言 new List<型>()

using System.Linq;
using System.Collections.Generic;
が必要
var list = new List<string>();
代入 変数名[要素番号] = 値 list[0] = "hoge";
要素追加 変数名.add(値) list.add("hoge");
連想配列(ディクショナリ) 宣言 new Dictionary<型,型>() var dic = new Dictionary<string,string>();
代入 変数名[キー名] = 値 dic["key"] = "value";
要素追加 変数名.add(キー名, 値)
※キーがなければ代入方式でも追加される
dic.add("key", "value");
算術演算 和(足し算) + 1 + 2
差(引き算) - 1 - 2
乗(かけ算) * 1 * 2
除(割り算) / ただし、割り切れない場合は、どちらか小数変換しないと、小数点が切り捨てになる (decimal)1 / 2; // 0.5
商(割り算の商) / 5 / 2; // 2
余(割り算の余り) % 5 % 2; // 1
べき乗 Math.Pow() Math.Pow(3,2); // 3の2乗
整数操作 インクリメント ++ num ++
デクリメント -- num --
文字列操作 結合 + str1 + str2;
長さ 文字列.Length str1.Length
切り出し 文字列.Substring "あいうえお".Substring(1,3); // "いうえ"
検索 文字列.IndexOf "あいうえお".IndexOf("い"); // 1
配列に分割 文字列.Split "10,2,3".Split(",");
制御構文(選択) IF文 if (条件) {} else if {} else { }  if ( a == 0)
{

}
else if ( a == 1) 
{

}
else
{

}
Switch文/Case文 switch(変数)
{
  case 値1:
    処理
    break;
  case 値2:
   処理
    break;
  default:
    処理
    break;
}
switch(num)
{
  case 1:
    Console.WriteLine(num);
    break;
  case 10:
    Console.WriteLine(num);
    break;
  default:
    Console.WriteLine(num);
    break;
}
制御構文(ループ) カウント制御ループ(For) for(int i = 0; i < 10; i ++) { } for(int i = 0; i < 10; i ++) 

  Console.WriteLine(i);
}
条件制御ループ(while) while(条件式){} var num = 0;
while(num < 0)
{
  num ++;
}
コレクション制御ループ(each) foreach(変数宣言 in 配列名) { }  var strArray[] = {"a","b","c"};
foreach(string str in strArray)
{
    Console.WriteLine(str);
}
ループスキップ(continue/skip) continue for (int i = 0; i < 10; i++) {
   if (i % 2 == 0) {
     continue;
   }
}
ループ再実行 ない
ループからの早期脱出(break) break for (int i = 0; i < 10; i++) {
   if (i % 2 == 0) {
     break;
   }
}
例外処理 try catch try
{

catch(exception)
{
}
try
{

}
catch (Exception)
{
    Console.WriteLine("Error!!");
}
finnaly try
{

catch(exception)
{

finnlay{
}
try
{

}
catch (Exception)
{
    Console.WriteLine("Error!!");
}
finally
{

}
usingブロック/try-with-resources using(idsposable変数インスタンス化)
{
}
using (FileStream fs = new FileStream("test.txt", FileMode.Read)) 
{

}
関数(メソッド)宣言 戻り値あり 戻り値データ型 関数名(データ型名 引数名)
{
    return xxx;
}
int Add(int a, int b)
{
    return a + b;
}
戻り値なし void 関数名(データ型名 引数名)
{

}
void ShowMessage(String Message)
{
    Console.WriteLine(Message);
}
クラス 宣言 class クラス名
{

}
class human
{
   private String name;
   public void SetName(String inputName)
   {
       name = inputName;
   }
}
継承 class 派生クラス名 : 基底クラス名
{
  派生クラスの定義
}
class Adult : human
{
    private int Age;
}
初期化(インスタンス化) var 変数名 = クラス名() var JohnDoe = new Adult();
コードブロック クラスブロック 中括弧 cass hoge
{

}
関数ブロック 中括弧 void hoge()
{

}
IFブロック 中括弧 if ( a == 0)
{

}
ループブロック 中括弧 for(int i = 0; i < 10; i ++) 

  Console.WriteLine(i);
}
例外処理ブロック 中括弧 try
{

}
catch (Exception)
{
    Console.WriteLine("Error!!");
}
ライブラリ/モジュール関連 ライブラリ/モジュールの追加 VisualStudioのソリューション エクスプローラーで、[参照] ノードを右クリックし、[参照の追加] を選び、モジュールを指定してOKボタン。
実体は、csprojファイルのItemGroup>Referenceノード内に追加
--
名前空間(パッケージ)の参照追加 ファイル先頭で、
using 名前空間;
using System.Text;

結論

なんかいけそう。(小並感)

31
53
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
53

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?