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 的区别
87 0
|
2月前
|
Go
Golang语言数据类型分类及进制转换案例
这篇文章详细介绍了Go语言中数据类型的分类、进制转换的概念和实例,以及数字字面量语法,还涉及了原码、反码和补码的相关知识。
17 0
Golang语言数据类型分类及进制转换案例
|
5月前
|
Go
【golang】golang 字符串切片排序
【golang】golang 字符串切片排序
62 1
|
5月前
|
算法 Java Go
【经典算法】LeetCode 67. 二进制求和(Java/C/Python3/Golang实现含注释说明,Easy)
【经典算法】LeetCode 67. 二进制求和(Java/C/Python3/Golang实现含注释说明,Easy)
62 2
|
6月前
|
程序员 Go
第七章 Golang数组和切片
第七章 Golang数组和切片
47 2
|
6月前
|
算法 搜索推荐 Shell
[算法基础 ~排序] Golang 实现
[算法基础 ~排序] Golang 实现
|
Java Linux Go
知识分享之Golang——在Golang中unicode码和中文的互相转换函数
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。
613 0
知识分享之Golang——在Golang中unicode码和中文的互相转换函数
|
Go
Golang 001. 统计7的倍数或包含7的数字
Golang 001. 统计7的倍数或包含7的数字
131 0
|
Go
Golang 002. 求质因数的个数
Golang 002. 求质因数的个数
78 0
|
Go Python
Golang 013. 求连续根号的值
Golang 013. 求连续根号的值
93 0