2017-05-04 1 views
-2

방금 ​​if를 사용하는 방법을 배웠고 간단한 계산기를 사용하려고했습니다. 하지만 코드가 너무 길어서 더 많은 옵션을 추가하고 싶습니다. 다른 방법을 사용하여 코드를 더 짧게 만들 수 있습니까?C# (초급)이 "if"코드의 짧은 버전을 만드는 방법은 무엇입니까?

namespace ConsoleApp4 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 
     Console.WriteLine("How many numbers do you wish to calculate? "); 
     string HowMany = Console.ReadLine(); 
     if (HowMany == "2") { 
      Console.Write("Enter #1: "); 
      int x = int.Parse(Console.ReadLine()); 
      Console.Write("Enter #2: "); 
      int y = int.Parse(Console.ReadLine()); 
      int sum = x + y; int sub = x - y; int mult = x * y; int div = x/y; 
      Console.WriteLine("The Result : Sum = " + sum + " Sub = " + sub + " Mult = " + mult + " Div = " + div); } 
     else if (HowMany == "3") { 
      Console.Write("Enter #1: "); 
      int x = int.Parse(Console.ReadLine()); 
      Console.Write("Enter #2: "); 
      int y = int.Parse(Console.ReadLine()); 
      Console.Write("Enter #3: "); 
      int z = int.Parse(Console.ReadLine()); 
      int sum = x + y + z; int sub = x - y - z; int mult = x * y * z; int div = x/y/z; 
      Console.WriteLine("The Result : Sum = " + sum + " Sub = " + sub + " Mult = " + mult + " Div = " + div); } 
     else if (HowMany == "4") 
     { 
      Console.Write("Enter #1: "); 
      int x = int.Parse(Console.ReadLine()); 
      Console.Write("Enter #2: "); 
      int y = int.Parse(Console.ReadLine()); 
      Console.Write("Enter #3: "); 
      int z = int.Parse(Console.ReadLine()); 
      Console.Write("Enter #4: "); 
      int w = int.Parse(Console.ReadLine()); 
      int sum = x + y + z + w; int sub = x - y - z - w; int mult = x * y * z * w; int div = x/y/z/w; 
      Console.WriteLine("The Result : Sum = " + sum + " Sub = " + sub + " Mult = " + mult + " Div = " + div); 
     } 

     Console.ReadKey(); 
    } 
} 
} 
+5

'for' 루프를 배우는 시간. –

+1

'if' 문 안의 모든 정크를 메서드에 넣을 수 있습니다. 따라서 모든 정크 메일을 한 번만 작성하면됩니다. 각 if 문에 다른 인수를 메서드에 전달하면 – quantik

+2

for 루프가 실행됩니다. 그들이 한 번에 1 개의 숫자를 입력하도록 요청하십시오. 그들이 숫자를 입력하지 않고 enter 키를 누르면 결과를 중지하고 표시합니다. 오직 하나의'if' 문만 필요합니다. – NotMe

답변

3

이것은 단지 합계입니다. 나는 다른 계산들을 당신에게 맡길 것입니다.

int sum = 0; 
for(int i = 1;i<=HowMany;i++) 
{ 
    Console.Write("Enter #{0}: ", i); 
    int input = int.Parse(Console.ReadLine()); 
    sum += input; 
} 
Console.WriteLine("The Result : Sum = {0}", sum); 
0
using System.IO; 
using System; 

class Program { 
static void Main() { 
    Console.WriteLine("How many numbers do you wish to calculate? "); 
    string HowMany = Console.ReadLine(); 

    int[] nums = new int[int.Parse(HowMany)]; 
    int sum = 0, sub = 0, mult = 1, div = 1; 
    for (int i = 0; i < int.Parse(HowMany); i++) { 
    Console.Write("Enter #" + (i + 1) + ": "); 
    nums[i] = int.Parse(Console.ReadLine()); 
    sum += nums[i]; 
    sub -= nums[i]; 
    mult *= nums[i]; 
    div /= nums[i]; 
    } 

    Console.WriteLine("The Result : Sum = " + sum + " Sub = " + sub + " Mult = " + mult + " Div = " + div); 

    Console.ReadKey(); 
} 
} 
+0

시도하지 않았지만 사용자가 2 자리 숫자를 입력하는 것처럼 보입니다 : '6'과 '3', 첫 번째 구분이 '1/6'이므로 div가 잘못 될 것입니다 –

+0

예, 네가 옳아) – Hobroker

0

당신은 루프를 사용하고있는 값의 롤링 총을 유지할 수 있습니다. 또한 divdouble으로 변경했습니다. 정수 나누기가 실제로 지루하기 때문에 - 십진수 값을 보는 것이 좋습니다.

또한 사용자가 숫자 수량에 대해 0보다 큰 정수만 입력 할 수 있도록 만들었습니다. 계산하고 싶다.

마지막으로 입력이 0 인 경우 나눗셈 도중 검사를해야하므로 곱셈 값은 항상 0이되므로 숫자에는 0이 아닌 정수 만 입력 할 수 있습니다. 더하기와 빼기 합계.

Console.Write("How many numbers do you wish to calculate? "); 
int count; 
while (!int.TryParse(Console.ReadLine(), out count) || count < 1) 
{ 
    Console.Write("Error: enter a positive, whole number: "); 
} 

int input, sum = 0, sub = 0, mult = 0; 
double div = 0; 

for (int i = 1; i <= count; i++) 
{ 
    Console.Write($"Enter #{i}: "); 

    // Don't allow user to enter 0. It does nothing to the addition or subtraction 
    // values, will make the multiplication value zero, and cannot be use for division 
    while (!int.TryParse(Console.ReadLine(), out input) || input == 0) 
    { 
     Console.Write("Error: enter a non-zero whole number: "); 
    } 

    if (i == 1) 
    { 
     // On the first input, we just store the number 
     sum = sub = mult = input; 
     div = input; 
    } 
    else 
    { 
     sum += input; 
     sub -= input; 
     mult *= input; 
     div /= input; 
    } 
} 

Console.WriteLine("The Result : Sum = " + sum + " Sub = " + 
    sub + " Mult = " + mult + " Div = " + div); 

Console.ReadKey(); 
관련 문제