1.块作用域
用一对大括号括起来的就是一个块,块确定了变量的作用域。一个块可以嵌套在另一个块中。块外的变量在块内有效,而块内的变量在块外无效。
public class Main{
public static void main(String[] args){
int i=1;
{
System.out.println("i="+i);
int j=1;
}
//System.out.println("j="+j); //错误
}
}
块内的变量名不可以和块外的一样,像下面这样是错的,因为会引起歧义:
public class Main{
public static void main(String[] args){
int i=1;
for(int i=1;i<3;i++)
{
...
}
}
}
2.控制流程
2.1 条件语句
import java.util.Scanner;
public class Main{
public static void main(String[] args){
System.out.println("Input a number:");
Scanner in=new Scanner(System.in);
int input=in.nextInt();
if(input==1)
{
System.out.println("I love young woman");
}
else if(input==2)
{
System.out.println("I love java");
}
else
{
System.out.println("I love you");
}
}
}
2.2 循环
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int input =in.nextInt();
System.out.println("result of while");
while(input >0)
{
System.out.println("input="+ input);
input--;
}
System.out.println("result of do while");
do
{
System.out.println("input="+ input);
input--;
}while(input>0);
for (int i=0;i<1;i++)
{
System.out.println("I love young woman");
}
}
}
2.3 多重选择语句
在switch语句中可以使用yield
来返回switch表达式的值。不能在** switch 表达式**中使用 return、break或 continue 语句。
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
String s=in.next();
//4种switch用法
//无直通-表达式
int a=switch(s){
case "spring"->{
System.out.println("Input string is \"spring\"");
yield 0; //返回表达式的值
} //注意这里不需要加分号
case "summer"->1;
case "fall"->2;
case "winter"->3;
default -> 100;
};
System.out.println("a="+a);
//无直通-语句
int b;
switch (s){
case "spring"->{
b=0;
}
case "summer"->{
b=1;
}
case "fall"->{
b=2;
}
case "winter"->{
b=3;
}
default -> {
b=100;
}
}
//直通-表达式 , 注意表达式里面是不能用break中断的,只能用yeild
int c=switch(s){
case "spring":
yield 0;
case "summer":
yield 1;
case "fall":
yield 2;
case "winter":
yield 3;
default:
yield 100;
};
System.out.println("c="+c);
//直通-语句
int d;
switch (s){
case "spring":
d=0;break; //注意不需要{}
case "summer":
d=1;break;
case "fall":
d=2;break;
case "winter":
d=3;break;
default:
d=100;
};
System.out.println("d="+d);
}
}
此外。注意case后面的标签有如下要求:
其中多个字符串就比如下面的代码:
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
String s=in.next();
//4种switch用法
//无直通-表达式
int a=switch(s){
case "spring","summer"->0;
case "fall"->1;
case "winter"->2;
default -> 100;
};
System.out.println("a="+a);
}
}