java入门基础三(执行语句)

  1. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  1. next() 不能得到带有空格的字符串。

nextLine():

​ 以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符,即可以获得空白。

示例:

Scanner sc =new Scanner(System.in);

System.out.println(“输入姓名:”);

String name = sc.next();

System.out.println(“输入数学成绩”);

double math = sc.nextDouble();

7. java执行语句

==============================================================================

7.1 顺序语句


方法中的代码从上往下执行(java程序从宏观上来看,都为顺序执行,自上而下)

7.2 分支语句


7.2.1 if分支

简单if分支

语法结构:

if(表达式){

…代码块…

}

理解:表达式的结果必须是boolean类型

true - 执行代码块

false - 跳出if分支

示例:

if(false){

System.out.println(“…代码块…”);

}

System.out.println(“if分支以外的代码”);

if else 分支

语法结构:

if(表达式){

…代码块…

}else{

…else代码块…

}

理解:

表达式的结果必须是boolean

true - 执行代码块

false- 执行else代码块

示例:

if(false){

System.out.println(“…代码块…”);

}else{

System.out.println(“…else代码块…”);

}

System.out.println(“if分支以外的代码”);

注:else使用必须和if一一对应,不能单独使用

if else if 分支

语法结构:

if(表达式1){

…代码块1…

}else if(表达式2){

…代码块2…

}else if(表达式n){

…代码块n…

}else{

…else代码块…

}

理解:

表达式的结果必须是boolean

从上往下依次判断表达式,哪个表达式先为true,就执行对应的代码块

所有的表达式都不为true,就执行else代码块

注意:else{}根据需求可写可不写

示例:

if(false){

System.out.println(“…代码块1…”);

}else if(false){

System.out.println(“…代码块2…”);

}else if(false){

System.out.println(“…代码块n…”);

}else{ //最后的else可有可无,当所有条件不满足时,执行。

System.out.println(“…else代码块…”);

}

System.out.println(“if分支以外的代码”);

if 嵌套

根据实际需要,if语句可以在程序中无限嵌套,语法规则按照上述三种即可。

示例:

if(true){

System.out.println(“第一个if代码块”);

if(true){

System.out.println(“第二个if代码块”);

}else if(true){

System.out.println(“第三个if代码块”);

}else{

//

}

}else if(false){

//

}else{

//

}

7.2.2 switch分支

switch基础

语法结构:

switch(表达式){

case 值1:

…代码块1…

break;

case 值2:

…代码块2…

break;

case 值n:

…代码块n…

break;

default:

…default代码块…

break;

}

理解:

表达式的结果可以是:byte、short、int、枚举(JDK1.5)、String(JDK1.7)

分别和值1、值2、值n比较,比较结果相等,开始执行case后对应的代码块,break代表跳出switch分支语句,即switch结束,如果不在代码块后加break,程序将会从当前case开始依次执行,直到结束或遇到break。

default代码块类似于else{},代表否则,根据需求可写可不写,所在位置也非固定在switch结构最后。

示例:

Scanner sc =new Scanner(System.in);

System.out.println(“输入一个数学成绩”);

String math = sc.next();

switch(math)

{

case “90”:

  System.out.println("优秀");

break;

case “80”:

  System.out.println("优良");

break;

case “70”:

  System.out.println("良好");

break;

case “60”:

  System.out.println("及格");

break;

default:

  System.out.println("不合格");

break;

}

if和switch
  1. if的表达式结果必须为boolean类型,而switch的表达式有多种(byte,short,int,枚举,String)
  1. if能够判断单个值,区间以及复杂的条件,而switch只能判断单个值,但结构清晰,比较方便,更加易读。
重点注意
  1. case的值绝对不能相等。
  1. default,break 可以省略,但会改变代码逻辑,且case后也可以直接跟case,表示多种情况都是执行同一代码块。

示例(判断输入月份的季节):

switch(month){

case 3:case 4:case 5:

System.out.println(“春”);

break;

case 6:case 7:case 8:

System.out.println(“夏”);

break;

case 9:case 10:case 11:

System.out.println(“秋”);

break;

case 12:case 1:case 2:

System.out.println(“冬”);

break;

}

  1. case后面的值类型可以不一样,但必须要兼容,如char和int

示例:

switch(‘a’)// 'a’的ASCII码为97

  {
  	case 97:
  		System.out.println("case为97的代码块");
  	break;
  	case 'b':
  		System.out.println("case为98的代码块");
  	break;
  	default:
  		System.out.println("default的代码块");
  	break;
  }

//输出结果为 case为97的代码块

  1. switch表达式的类型为什么只有byte、short、int、枚举(JDK1.5)、String(JDK1.7)?
switch表达式的结果在底层只接受int  
byte自动转型成int  
short自动转型成int  
枚举的对象系统会给他赋int值  
String是获取的ASCII码

7.3 循环语句


7.3.1 for循环

for基础

语法结构:

for(表达式1;表达式2;表达式3){

…代码块…

}

理解:

表达式1:初始化变量

表达式2:判断条件

表达式3:更新变量

执行流程:

1.初始化变量

2.判断条件:判断条件的结果必须是boolean

2.1 true - 执行代码块,并更新变量,重复第2个步骤

2.2 false- 跳出整个循环语句

for嵌套

示例:打印如下图案



代码:

int n=3; //设置图案的高度为3

for(int i=0;i<n;i++){

for(int j=0;j<n+i;j++){

  if(i+j<n-1)System.out.print(" ");
  else System.out.print("*");

}

System.out.println();

}

示例:打印九九乘法表

for(int i = 1;i<=9;i++){

for(int j = 1;j<=i;j++){

  System.out.print(j + "x" + i + "=" + (i*j) + "\t");

}

System.out.println();

}

重点注意:

注:

  1. for( ; ; ) 表达式123都为空,会出现运行的死循环。(需要避免!)
  1. 伪死循环的概念:非无限死循环,程序最终能够完成循环,但需要执行的次数过于庞大。(需要避免!)
例:
for(int i = 0;i>=0;i++) {} 
​ 因为int类型取值范围为21亿多(具体可参照java入门基础一 4.3.1),所 以 for循环次数也为21亿多次,直到i的值为负数,循环才能结束。
  1. 在for循环中定义并且初始化的变量,只能够在for循环中使用,如果想要在整个方法中使用,需要在for外定义。

7.3.2 while循环

语法结构:

​ while(表达式){

​ …while代码块…

​ }

理解(与if分支有相似之处):

表达式的结果必须是boolean

true - 执行代码块

false- 跳出循环

死循环:

while(true){

  System.out.println("死循环");

}

7.3.3 do-while循环

语法结构:

do{

…代码块…

}while(表达式);

理解:

表达式的结果必须是boolean

true - 执行代码块

false- 跳出循环

执行顺序:

​ 1.先执行一遍代码块

​ 2.判断表达式

​ 2.1 true - 执行代码块,再重复2

​ 2.2 false- 跳出循环

拓展:for、while 和do while

语法结构的区别:

for(初始化变量;判断条件;更新变量){}

while(判断条件){}

do{}while(判断条件);

循环共同点:判断条件的结果都是boolean值,true-循环 false-跳出循环

执行顺序的区别:

for:先判断,再执行

while:先判断,再执行

do-while:先执行一遍,再判断

应用场景的区别:

循环次数确定:for

循环次数不确定,先判断,再执行:while

循环次数不确定,先执行一遍,再判断:do-while

7.4 特殊的流程控制语句


7.4.1 break

  1. 作用:作用于循环中,表示跳出当前循环(即执行到break直接退出当前循环,不再操作任何循环内的语句)
  1. 示例:
while(true){
	System.out.println("1");
	System.out.println("2");
	if(true){
		break;
	}
	System.out.println("3");
	System.out.println("4");
}
/*
输出结果:
1
2
*/ 
注:break跳出当前循环,若是循环多重嵌套,break在内层循环时,一次只能调到外层循环中,而不能直接结束所有循环。(若是想要通过break结束任意对应循环,可参照7.4.4 lable)

7.4.2 continue

  1. 作用:作用于循环中,表示跳过当前循环剩余的部分,进入到下一次循环(即执行到continue时,立即越过当前一次的循环。)
  1. 示例
for(int i=0;i<3;i++){
	System.out.print("1");
	System.out.print("2");
	if(true){
		continue;
	}
	System.out.print("3");
	System.out.print("4");
}
/*
输出结果:
121212
*/ 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值