Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Норм для начинающего java программиста?

Petr Korneev Ученик (56), на голосовании 6 месяцев назад
учу java неделю примерно, и я написал небольшой калькулятор
выглядит он так он не супер крутой конечно

код кому интересно:
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner( System.in );

System.out.print("1 число: ");
int num1 = scanner.nextInt();

System.out.print("2 число: ");
int num2 = scanner.nextInt();

System.out.print("Действие: ");
String action = scanner.nextLine();
action = scanner.nextLine();
int res;


switch (action) {
case "+":
res = num1 + num2;
System.out.print("Результат:" + res);
break;

case "-":
res = num1 - num2;
System.out.print("Результат:" + res);
break;

case "/":
if (num2 == 0)
System.out.println("На нодь делить нельзя!");
else {
res = num1 / num2;
System.out.print("Результат:" + res);
break;
}

case "*":
res = num1 * num2;
System.out.print("Результат:" + res);
break;

default:
System.out.println("error");
}



}}
Голосование за лучший ответ
Celtic Hammer Мудрец (16453) 7 месяцев назад
Калькулятор вот...
https://jsfiddle.net/4wvtm2be/
Писал его несколько лет назад не на Джаве, а на Джавскрипте, но зато там уже после первой пары недель начала изучения по крайней мере были GUI, парсинг строки в математическое выражение и его реальное вычисление через обратную польскую нотацию
Wesker Мастер (1164) 7 месяцев назад
Перепиши его на Java
 import re  

INPUT = input(">> ") # (5-2)/5

TOKENS = re.compile("(\+|\-|\*|/|\(|\))").split(INPUT)

EXPR = list(filter(None,TOKENS))

def get(): return EXPR[0] if EXPR else False

def ch(p, c: str) -> bool: return [True, EXPR.pop(0)][0] if p == c else False

def un() -> float:
if(ch(get(),'(')):
ex = eval()
if(not ch(get(),')')): print("expected ')'\n")
return ex
else:
res = EXPR.pop(0)
return float(res)

def muls() -> float:
ex = un()
while(True):
if(ch(get(),"*")): ex *= un()
elif(ch(get(),"/")): ex /= un()
else: return ex

def eval() -> float:
ex = muls()
while(True):
if(ch(get(), "+")): ex += muls()
elif(ch(get(), "-")): ex -= muls()
else: return ex



if __name__ == "__main__":
print(f"{''.join(EXPR)} = {eval()}")
Похожие вопросы