一.if else 判断
if else if else 条件判断语句,满足if后的条件执行if里面的语句,反之执行else中的语句
注意:在java中需要在if后面写括号将条件语句包裹起来,golang中不需要
1.java中的if else
package org.example;
import sun.java2d.pipe.SpanIterator;
public class Main {
public static void main(String[] args) {
int a = 1;
int b = 2;
if (a > b) {
System.out.println("a > b");
} else if (a == b) {
System.out.println("a = b");
} else {
System.out.println("a < b");
}
}
}
2.golang中的if else
package main
import "fmt"
func main() {
a := 3
b := 2
if a > b {
fmt.Println("a >b")
} else if a == b {
fmt.Println("a = b")
} else {
fmt.Println("a < b")
}
}
二.for循环
for循环是一种常见的控制流程语句,用于重复执行一段代码块一定的次数。它通常用于遍历数组或集合元素、执行固定次数的迭代操作等场景。
1.java中的for循环
package org.example;
import sun.java2d.pipe.SpanIterator;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> stringList = Arrays.asList("java", "golang", "c", "c++", "python", "php");
// 普通for循环
for (int i = 0; i < stringList.size(); i++) {
System.out.println(stringList.get(i));
}
// 增强for循环
for (String name : stringList) {
System.out.println(name);
}
}
}
2.golang中的for循环
package main
import "fmt"
func main() {
stringArray := []string{"java", "golang", "c", "c++", "python", "php"}
// 普通for循环
for i := 0; i < len(stringArray); i++ {
fmt.Println(stringArray[i])
}
// for range
for index, value := range stringArray {
fmt.Printf("索引为%v,值为%v\n", index, value)
}
}
三.switch case
switch case
是一种条件语句,用于根据不同的条件执行不同的代码块。它提供了一种比使用多个if-else
语句更简洁的方式来处理多个可能的条件。
1.java中的switch case
package org.example;
public class Main {
public static void main(String[] args) {
String name = "java";
switch (name) {
case "java":
System.out.println("这是java");
break;
case "golang":
System.out.println("这是golang");
break;
default:
System.out.println("这是编程语言");
}
}
}
2.golang中的switch case
package main
import "fmt"
func main() {
name := "golang"
switch name {
case "golang":
fmt.Println("这是golang")
break
case "java":
fmt.Println("这是java")
break
default:
fmt.Println("这是编程语言")
}
}
3.java和golang switch case的区别
1)穿透区别
在java中在case语句中不写break会出现穿透现象,而golang中默认自带break,写不写都不会造成穿透现象,如果想实现穿透的效果,可以采用fallthrough关键字
package main
import "fmt"
func main() {
name := "golang"
switch name {
case "golang":
fmt.Println("这是golang")
fallthrough
case "java":
fmt.Println("这是java")
break
default:
fmt.Println("这是编程语言")
}
}
2)条件区别
在golang中case里面是可以写条件语句的,但是java不允许。例如:
package main
import "fmt"
func main() {
num := 2
switch {
case num > 1:
fmt.Println("num > 1")
fallthrough
case num == 2:
fmt.Println("num == 2")
break
default:
fmt.Println("num")
}
}
四.while,do while循环(golang中无while)
在Java中,while
和do-while
是两种常用的循环结构,用于重复执行一段代码块,直到满足某个条件为止。
while
循环首先判断条件是否为真,如果为真,则执行循环体中的代码块,然后再次判断条件。如果条件仍然为真,继续执行循环体,以此类推,直到条件为假时退出循环。
1.java中的while循环
package org.example;
public class Main {
public static void main(String[] args) {
int num = 3;
while (num > 0) {
System.out.println(num);
num--;
}
}
}
2.java中的do while循环
do-while
循环首先执行一次循环体中的代码,然后再判断条件是否为真。如果条件为真,则继续执行循环体,否则退出循环。
package org.example;
public class Main {
public static void main(String[] args) {
int num = 3;
do {
System.out.println(num);
num--;
}while (num >=0 );
}
}
五.break,continue,goto(java中无goto)
break:跳出当前循环
continue:继续下次循环
goto:跳转到指定标签(golang中存在,java中不存在)
1.java中的break
package org.example;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> stringList = Arrays.asList("java", "golang", "c", "c++", "python", "php");
for (int i = 0; i < stringList.size(); i++) {
System.out.println(stringList.get(i));
if ("c++".equals(stringList.get(i))) {
break;
}
}
}
}
2.golang中的break
package main
import "fmt"
func main() {
stringArray := []string{"java", "golang", "c", "c++", "python", "php"}
// 普通for循环
for i := 0; i < len(stringArray); i++ {
fmt.Println(stringArray[i])
//因为golang中string是基本数据类型所以用==就能判断是否相同,而java中为对象,String类型需要用equals比较
if "c++" == stringArray[i] {
break
}
}
}
3.java中的continue
package org.example;
public class Main {
public static void main(String[] args) {
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 4; j++) {
if (j == 2) {
continue;
}
System.out.println("i=" + i + "j=" + j);
}
}
}
}
4.golang中的continue
package main
import "fmt"
func main() {
for i := 0; i < 2; i++ {
for j := 0; j < 4; j++ {
if j == 2 {
continue
}
fmt.Println("i j 的值", i, "-", j)
}
}
}
5.golang中的goto
goto
语句通过标签进行代码间的无条件跳转。
goto
语句可以在快速跳出循环、避免重复退
出上有一定的帮助。
Go
语言中使用
goto
语句能简化一些代码的实现过程。
package main
import "fmt"
func main() {
var n int = 30
if n > 20 {
goto label1
} else {
goto label2
}
label2:
fmt.Println("n <= 20")
label1:
fmt.Println("n > 20")
}