Golang 004. 转换百分制分数

简介: Golang 004. 转换百分制分数

【基础入门题】Golang 004. 转换百分制分数

给出一个百分制成绩,要求输出等级为A,B,C,D,E。


90分以上即n>=90为A;80<=n<90分为B;以此类推;

直到n<60分全为E;如果输入小于0或大于100的分数,

则输出“Not valid”。


输入形式:输入一个可能带小数点的分数

输出形式:根据对应关系,输出五分制分数档。  


方法一: if - else if - else  


package main
import "fmt"
func Grade(m float32) string {
  var result string
  if m <= 100 && m >= 90 {
    result = "A"
  } else if m < 90 && m >= 80 {
    result = "B"
  } else if m < 80 && m >= 70 {
    result = "C"
  } else if m < 70 && m >= 60 {
    result = "D"
  } else if m < 60 && m >= 0 {
    result = "E"
  } else {
    result = "Not valid"
  }
  return result
}
func main() {
  fmt.Printf("Grade(%.1f) = %s\n", 80.5, Grade(80.5))
  fmt.Printf("Grade(%d) = %s\n", 100, Grade(100))
  fmt.Printf("Grade(%d) = %s\n", 105, Grade(105))
  /* Out:
  Grade(80.5) = B
  Grade(100) = A
  Grade(105) = Not valid
  */
}



方法二: switch - case - default,switch后无表达式

package main
import "fmt"
func Grade(m float32) string {
  var result string
  switch {
  case m <= 100 && m >= 90:
    result = "A"
  case m < 90 && m >= 80:
    result = "B"
  case m < 80 && m >= 70:
    result = "C"
  case m < 70 && m >= 60:
    result = "D"
  case m < 60 && m >= 0:
    result = "E"
  default:
    result = "Not valid"
  }
  return result
}
func main() {
  fmt.Printf("Grade(%.1f) = %s\n", 80.5, Grade(80.5))
  fmt.Printf("Grade(%d) = %s\n", 100, Grade(100))
  fmt.Printf("Grade(%d) = %s\n", 105, Grade(105))
  /* Out:
  Grade(80.5) = B
  Grade(100) = A
  Grade(105) = Not valid
  */
}

方法三: switch - case - default,switch后有表达式

package main
import "fmt"
func Grade(m float32) string {
  var result string
  if m > 100 || m < 0 {
    return "Not valid"
  }
  switch int(m) / 10 {
  case 10, 9:
    result = "A"
  case 8:
    result = "B"
  case 7:
    result = "C"
  case 6:
    result = "D"
  default:
    result = "E"
  }
  return result
}
func main() {
  fmt.Printf("Grade(%.1f) = %s\n", 80.5, Grade(80.5))
  fmt.Printf("Grade(%d) = %s\n", 100, Grade(100))
  fmt.Printf("Grade(%d) = %s\n", 105, Grade(105))
}
目录
相关文章
|
Go
Golang 语言 for 和 for-range 的区别
Golang 语言 for 和 for-range 的区别
107 0
|
4月前
|
Go
Golang语言数据类型分类及进制转换案例
这篇文章详细介绍了Go语言中数据类型的分类、进制转换的概念和实例,以及数字字面量语法,还涉及了原码、反码和补码的相关知识。
33 0
Golang语言数据类型分类及进制转换案例
|
7月前
|
Go
【golang】golang 字符串切片排序
【golang】golang 字符串切片排序
77 1
|
存储 Java Go
Golang 语言中数组和切片的区别是什么?
Golang 语言中数组和切片的区别是什么?
72 0
|
8月前
|
Go 数据安全/隐私保护
第九章 Golang中map
第九章 Golang中map
51 2
|
8月前
|
程序员 Go
第七章 Golang数组和切片
第七章 Golang数组和切片
61 2
|
8月前
|
Python Go 算法
Golang每日一练(leetDay0023) 二进制求和、文本左右对齐、x的平方根
Golang每日一练(leetDay0023) 二进制求和、文本左右对齐、x的平方根
68 0
Golang每日一练(leetDay0023) 二进制求和、文本左右对齐、x的平方根
|
8月前
|
编译器 Go
浅谈Golang T和*T方法集的关系
浅谈Golang T和*T方法集的关系
52 0
|
8月前
|
算法 搜索推荐 Shell
[算法基础 ~排序] Golang 实现
[算法基础 ~排序] Golang 实现
|
算法 中间件 程序员
golang中的异常和切片
golang中的异常和切片