【GO】if 语句练习题

登录密码校验

题目描述

用户登录时校验密码长度是否符合要求(至少 8 位)。

  • 定义字符串变量 password = "Go123456"
  • 用if判断密码长度是否≥8
  • 输出校验结果(符合 / 不符合)

输出示例

密码:Go123456

校验结果:密码长度符合要求

实现代码

Go 复制代码
package main

import (
	"fmt"
)

func main() {
	password := "Go123456"
	fmt.Printf("密码:%s\n", password)

	// 仅用if基础判断
	if len(password) >= 8 {
		fmt.Println("校验结果:密码长度符合要求")
	} else {
		fmt.Println("校验结果:密码长度不符合要求")
	}

}

登录账号校验

题目描述

用户登录系统需同时校验「用户名非空」和「密码长度≥8 且≤16」,满足则登录成功,否则提示具体错误。

  • 定义变量:username = "user001"、password = "Go@12345678"
  • 用if-else结合组合条件(&&/||)判断:
    • 用户名空 → 提示「用户名不能为空」
    • 密码长度 <8 或> 16 → 提示「密码长度需 8-16 位」
    • 全部满足 → 提示「登录成功」

输出示例

用户名:user001,密码:Go@12345678

登录结果:登录成功

实现代码

Go 复制代码
package main

import (
	"fmt"
	"len"
)

func main() {
	// 定义登录信息
	username := "user001"
	password := "Go@12345678"
	fmt.Printf("用户名:%s,密码:%s\n", username, password)

	// 组合条件判断
	if username == "" {
		fmt.Println("登录结果:用户名不能为空")
	} else if len(password) < 8 || len(password) > 16 {
		fmt.Println("登录结果:密码长度需8-16位")
	} else {
		fmt.Println("登录结果:登录成功")
	}
}

会员等级判定

题目描述

电商会员等级规则:

  • 消费金额≥10000 元 → 钻石会员
  • 5000≤金额 < 10000 → 黄金会员
  • 1000≤金额 < 5000 → 白银会员
  • 金额 < 1000 → 普通会员

输出示例

累计消费金额:8888.5元

会员等级:黄金会员

实现代码

Go 复制代码
package main

import "fmt"

func main() {
	// 定义消费金额
	consumeAmount := 8888.5
	fmt.Printf("累计消费金额:%.1f元\n", consumeAmount)

	// 多分支区间判断会员等级
	var level string
	if consumeAmount >= 10000 {
		level = "钻石会员"
	} else if consumeAmount >= 5000 {
		level = "黄金会员"
	} else if consumeAmount >= 1000 {
		level = "白银会员"
	} else {
		level = "普通会员"
	}

	fmt.Printf("会员等级:%s\n", level)
}

购物折扣计算

题目描述

编写一个程序,根据会员等级和购物金额计算最终付款金额:

  • 普通会员:满100元打9折

  • 黄金会员:满100元打8折,满200元打7折

  • 钻石会员:直接打7折,满300元再减50元

输入示例

请输入会员等级(普通/黄金/钻石):黄金

请输入购物金额:250

输出示例

最终付款金额:175.0元

实现代码

Go 复制代码
package main

import (
	"fmt"
)

func main() {
	// 定义变量存储会员等级和购物金额
	var level string
	var amount float64

	// 获取用户输入
	fmt.Print("请输入会员等级(普通/黄金/钻石):")
	fmt.Scan(&level)
	fmt.Print("请输入购物金额:")
	fmt.Scan(&amount)

	// 定义变量存储最终付款金额
	var finalAmount float64

	// 根据会员等级和金额计算折扣
	if level == "普通" {
		// 普通会员:满100元打9折
		if amount >= 100 {
			finalAmount = amount * 0.9
		} else {
			finalAmount = amount
		}
	} else if level == "黄金" {
		// 黄金会员:满100元8折,满200元7折
		if amount >= 200 {
			finalAmount = amount * 0.7
		} else if amount >= 100 {
			finalAmount = amount * 0.8
		} else {
			finalAmount = amount
		}
	} else if level == "钻石" {
		// 钻石会员:直接7折,满300元再减50
		finalAmount = amount * 0.7
		if amount >= 300 {
			finalAmount -= 50
		}
	} else {
		// 无效会员等级
		fmt.Println("错误:会员等级输入有误!")
		return
	}

	// 输出最终结果(保留1位小数)
	fmt.Printf("最终付款金额:%.1f元\n", finalAmount)
}
相关推荐
紧跟先前的步伐3 小时前
Go AI Agent 实战 22|完善 Agent 执行循环:从工具调用到最终回答
人工智能·ai·golang
后台模板学习4 小时前
Go Web开发中任务调度框架的源码解析与高可用实现方案
开发语言·后端·golang
FungLeo5 小时前
成为全栈·Go 后端篇·分类树与标签关系:目录变更为何需要协调
golang·go·gorm·数据库事务·分类树·成为全栈
fly-iot5 小时前
【FDE知识库】(1):AI 编程时代开发语言选型分析,云使用go,企业用java,算法python,底层c
开发语言·人工智能·golang
FungLeo5 小时前
成为全栈·Go 后端篇·文章查询与展示投影:安全分页、排序和软删除
golang·go·gorm·分页查询·成为全栈·sql安全
紧跟先前的步伐14 小时前
Go AI Agent 实战 24|工具系统工程化收尾与阶段验收
人工智能·ai·golang·1024程序员节
日日大王学编程15 小时前
#Feed 流项目复盘:Redis 时间线缓存与 Outbox 消息可靠性设计
golang·1024程序员节
北冥you鱼1 天前
Go 语言 CRUD 实战:从接口设计到真实业务场景
开发语言·后端·golang
利威尔xu1 天前
Go IM 源码实战(11):token 只是个 HASH,多端互踢的顺序错了就踢错人
后端·微服务·面试·架构·golang
microrain1 天前
SagooIoT 把协议解析和消息通知都放进了独立进程
物联网·golang·插件·sagooiot