static string GetGrade(double score) => score switch
{
< 60 => "F"
_ => "A"
};
double score 변수의 값에 따른 스위치문이다
60 보다 작을경우 F를 GetGrade에 반환하고
위 조건이 전부 false일 때 A를 반환한다.
목록패턴
배열이나 리스트가 패턴의 시퀸스가 일치하는지 검사
패턴의 시퀸스는 [와] 사이에 패턴의 목록을 입력하여 생성
var match = (int[] array) => array is [int, >10, _][int, >10, ..]
int로 이루어진 배열인 array 가 0번째 항목이 int값인지, 1번째 항목이 10보다 큰지, 아무거나 기입되어있는지 확인하고 true or false 값을 반환한다.
using System;
using static System.Console;
public class Solution
{
public bool solution(int x)
{
bool answer = true;
int lang = (int)Math.Log10(x) + 1;
int plus = 0;
for (int i = 0; i < lang; i++)
{
plus += x % 10;
x /= 10;
}
answer = (x % plus == 0)? true : false;
return answer;
}
}
어째서인지 true인값은 잘 반환이 되는데 false값은 잘 반환이 되지 않았다.
using System;
using static System.Console;
public class Solution
{
public bool solution(int x)
{
bool answer = true;
int lang = (int)Math.Log10(x) + 1;
int plus = 0;
int insX = x;
for (int i = 0; i < lang; i++)
{
plus += insX % 10;
insX /= 10;
}
answer = (x % plus == 0)? true : false;
return answer;
}
}
이유는 x 값을 변동시키고 answer 값에 나머지 값이 0 인 조건을 걸어서 x 가 무조건 0혹은 1이라서 나머지가 무조건 0 이 떨어지는 상황이였다.
해결 방법으로 위의 for 문의 계산식에 x 대신 instanceX 를 생성해서 x값에 변동이 없게 처리하였다.
오늘은 2시간 정도 C# 기본을 돌아보았다. C# 공부에도 조금 무리를 하더라도 분량을 늘리고 그만큼 공부 시간을 늘릴 계획이다.