设为首页 加入收藏

TOP

3.你所不知道的go语言控制语句——Leetcode习题69(一)
2023-08-26 21:10:06 】 浏览:141
Tags:Leetcode 习题

本篇前瞻

好的,现在你已经来到一个新的小结,在这里你将学习到go语言的重要内容,习得go 25个关键字中的12个:var, const, if, else, switch, case, default, fallthrough, for, break, goto, continue,即在顺序结构学习var,const,在分支结构中学习if, else, switch, case, default, fallthrough,在循环结构中学习for, break, goto, continue。另外你最好注册一个Leetcode账号.

Leetcode习题9

让我们再来看下这个例子,这个是一个比较好的例子,里面包含了顺序,分支以及循环的所有控制结构

题目描述

9. 回文数

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

代码编写

func isPalindrome(x int) bool {
	if (x < 0) { //分支结构
		return false
	}
	x64 := x   //顺序结构
	px64 := 0
	for x64 != 0 {  //循环结构
		px64 = px64*10 + x64%10 // 顺序结构
		x64 /= 10
	}
	return px64 == x 
}

你在这个道题目中能看到所有的控制结构:顺序结构,分支结构,循环机构

控制结构

顺序结构(Sequence)

声明和赋值

在顺序结构中声明和赋值是很重要的

var可以声明一个变量,而const则声明一个常量

package main

import "fmt"

func main() {
	var i1 int     //声明变量,默认值为0
	var i2 int = 1 //声明变量,初始化为1
	i3 := 2        //这是最常用的声明和初始化手段
	fmt.Println(i1, i2, i3)
	i4 := i2 + i3 //使用运算表达式赋值
	i3 *= i4      //使用运算表达式赋值
	fmt.Println(i3, i4)
	const ci1 int = 13 //声明常量,无法
	fmt.Println(ci1)
	x, y, z := 100, 101, 102 //多返回值
	fmt.Println(x, y, z)     //打印结果
}

输出:

0 1 2
6 3
13
100 101 102

这里仅仅举例了整形int的声明

多返回值赋值

x,y,z := 0,1,2

go语言允许这样多返回值赋值赋值方式,再挖个坑,原因会在介绍函数时说明一下。

运算符

算术运算符

++ --
自增1 自减1
+= -= *= /= %=
自增 自减 自乘 自除 自模,取余
+ - * / %
加法 减法 乘法 除法 模,取余

注意: 例如如3/2 在整型中是整除即3/2=1,在浮点型是3.0/2.0=1.5,模运算智能用于整数

位运算符

<< >> & | ^
左移 右移 亦或
<<= >>= &= |= ^=
自左移 自右移 自与 自或 自亦或

位运算符几乎我们这篇实用的编程用不到,但是这个概念也很重要,计算机底层事实上是这样工作的,这里在挖个坑,后面会介绍位运算的相关leetcode题目,你会看到它的威力。

逻辑运算

&& || == !=
相等 不等于
>= <= > <
大于等于 小于等于 大于 小于

这些会在分支语句中大放异彩。

分支结构

if 语句

if 语句有if,if-else以及if-else if-else结构,如下所示:

package main

import "fmt"

func main() {
	var input int
	fmt.Printf("请输入分数:")
	fmt.Scanf("%d", &input)
	if input < 60 { //if
		fmt.Println("1.不合格")
	}

	if input < 60 { //if-else
		fmt.Println("2.不合格")
	} else{
		fmt.Println("2.合格")
	}

	if input < 60 {//if-else if-else
		fmt.Println("3.不合格")
	} else if input < 70 {
		fmt.Println("3.合格")
	} else if input < 85 {
		fmt.Println("3.良好")
	} else  {
		fmt.Println("3.优秀")
	}
}

结果如下:

请输入分数:59
1.不合格
2.不合格
3.不合格

switch 语句

事实上switch 语句比if语句更为强大,在有多个分支时更为符合go语言的风格,完整代码如下:

package main

import "fmt"

func main() {
	var i int
	fmt.Printf("请输入分数:")
	fmt.Scanf("%d\n", &i)
	switch {
	case i < 60: //单个逻辑表达式
		fmt.Println("不合格")
	case i < 70:
		fmt.Println("合格")
	case i < 85:
		fmt.Println("良好")
	default:
		fmt.Println("优秀")
	}

	var c byte
	fmt.Printf("请输入等级:")
	fmt.Scanf("%c\n", &c)

	switch c {
	case 'E', 'e': //可以有多个选择
		fmt.Println("1.不合格")
	case 'D', 'd':
		fmt.Println("1.基本合格")
	case 'C', 'c':
		fmt.Println("1.合格")
	case 'B', 'b':
		fmt.Println("1.良好")
	case 'A', 'a
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇一文了解Gin对Cookie的支持 下一篇番外1.ssh连接管理器

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目