LoginSignup
1
0

More than 3 years have passed since last update.

噛み砕くC#(ラムダ式、for文)の考え方

Last updated at Posted at 2019-10-09

当時Javaのテストでたまに間違えててこれが出来なければプログラミング思考じゃない!
と言われ続けてたのを思い出しC#にしてアウトプット。

Q,1,2,3に何が出力されるか

public static void Main(string[] args){
         int[] nums=new int[10];
         for(int i=0;i<nums.Length;i++){
           nums[i]=i/2; 
         }//0,0,1,1,2,2,3,3,4,4
         int sum=0;
         int index=0;
         for(;index<nums.Length;index++){
           sum+=nums[index];
           if(sum > 10){
           break;
           }
         }
         Console.WriteLine(index); //1

         int[] data={3,5,8,1,2};
         var result=data.Where(n=>n%2==0).Select(n=>n*n).Sum();
         Console.WriteLine(result); //2
         data.OrderByDescending(n=>n).ToList().ForEach(Console.Write); //3

補足1

Javaとの違い

public static void Main(string[] args){ //mainでString

nums.Length //length

考え方

1二つ目のfor文で配列numの値をインデックス0から順に足していき、その合計が10を超えたときのインデックス番号を返してます。
2はラムダ式ではありますがクエリ文をヒントに偶数の数値の乗算を合計するだけ。
3はリストに格納してForEachメソッドで降順に出力する。

回答

1は0,0,1,1,2,2,3,3,4,4なので
回答:7

2は8*8=64 2*2=4なので
回答:集合体の合計68

3は85321(カンマなし)

他にもJavaになりますがダイヤを表示せよとかピラミッドを表示させよとか・・

1
0
2

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
1
0