Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Solutions

Solution 1 Begin

@main
def read(): Unit = 
  val scanner = new Scanner(System.in)
  print("read: ")
  val s = scanner.nextLine
  println("write: " + s)

Solution 2 Welcome

@main
def read(): Unit =
  val scanner = new Scanner(System.in)
  print("your name: ")
  val s = scanner.nextLine
  println("Welcome " + s)

Solution 3 Add

@main
def sum(): Unit =
  val scanner = new Scanner(System.in)
  
  print("number1: ")
  val number1 = scanner.nextInt
  
  print("number2: ")
  val number2 = scanner.nextInt

  val sum = number1 + number2
  println("sum: " + sum)

Solution 4 Menu

@main
def menu(): Unit =
  println("Menu choices")
  println("1 - hello")
  println("2 - bye")
  print("Your choice: ")
  
  val scanner = new Scanner(System.in)
  val menu = scanner.nextInt
  
  if menu == 1 then
    println("hello")
  else if menu == 2 then
    println("bye")
  else println("wrong number")

Solution 5 Calculator

@main
def calculator(): Unit = 
  val scanner = new Scanner(System.in)

  print("number1: ")
  val number1 = scanner.nextInt
  scanner.nextLine

  print("number2: ")
  val number2 = scanner.nextInt
  scanner.nextLine

  print("operator: ")
  val operator = scanner.nextLine

  val result: Int = operator match {
    case "+" => number1 + number2
    case "-" => number1 - number2
    case "*" => number1 * number2
    case "/" => number1 / number2
  }
  println("result: " + result)

Solution 6 Drawing

@main
def drawing(): Unit = 
  //  1 to 4 foreach { x =>
  //    println(x)
  //  }
  //
  //  for (x <- 1 to 4) {
  //    println(x)
  //  }

  for x <- 1 to 4 do
    for y <- 1 to x do
      print(" *")
    println

  for x <- 1 to 4 do
    for y <- 1 until x do
      print("  ")
      println(" *")

Solution 7 List

@main
def lists(): Unit = 
  val array = Array(1, 2, 3, 4, 5, 6, 7, 8)

  for x <- array do
    println(x)

  for x <- array.reverse do
    println(x)

  println(array.sum)

  println(array.sum.toDouble / array.length)

Solution 8 String


Solution 9 Function

@main
def functions(): Unit = 

  def add(a: Int, b: Int) = a + b
  println(add(3, 4))

  def log(text: String) = 
    println(s"${new Date()} : $text")

  println(log("the message"))

Project: Numberguess

with if..else

@main
def numberguessnew(): Unit =
  val random = Random.nextInt(100)
  val scanner = new Scanner(System.in)

  var next = true
  while next do
    print("guess the number: ")
    val number = scanner.nextInt
  
    if number < random then
      println("greater")
    else if number > random then
      println("smaller")
    else if number == random then
      println("found")
      next = false

with match

@main
def numberguessnewer(): Unit = 
  val random = Random.nextInt(100)
  val scanner = new Scanner(System.in)
  
  var next = true
  while next do
    print("guess the number: ")
    val number = scanner.nextInt

    val result = number match
      case gt if gt < random => "greater"
      case lt if lt > random => "smaller"
      case eq if eq == random => "found"

    println(result)
    if result == "found" then 
      next = false