我的java学习日志day04

我的java学习日志day04

2019年7月2日

流程控制语句

三种语句结构:1、顺序结构;2、选择结构;3、循环结构;

1、顺序结构:java中绝大部分都是顺序结构(从上到下,从左往右)

实例:

class XX{public static void main(String[] args){

System.out.println("写个啥?");
System.out.println("不知道");

输出结果由上往下为:写个啥? 不知道
} }

2、选择结构: if语句、 switch语句、

if语句:一共有三种格式;

----------*–---------------*-
class XX{public static void main(String[] args){
//if语句格式
格式1 、if(判断条件){语句体}

执行流程:先去计算判断条件,如果结果为true

就执行语句体, if语句结束;如果结果为false,就跳过

if语句;也就是不执行;

int money = 10;

if(money>20){System.out,println("就是不买");}

System.out.println("不买");				

}}

-------------–**-----------*
if语句格式2、

class XX{public static void main(String[] args){
if语句格式2、
if(判断条件){语句体1}else{语句体2}

执行流程: 先进行判断,如果true,执行语句体1,否则执行

语句体2;

实例:求两个整数的最大值;

int a = 5; int b = 6;

if(a>b){System.out.println(a)}else{

System.out.println(b);}

求三个数字的最大值

int a = 5; int b = 6; int c = 7;

执行判断;
if(a>b){if(a>c){System.out.println(a);}else{

if(b>c){System.out,println(b)}else{
System.out.println(c);}}}}}

如果if语句格式二,返回的是值,就可以和三目等效转换;

—**--------**-------*-**-
if语句格式3、

class XX{publci static void main(String[] args){

if语句的三种格式:
if(判断条件){语句体3}else if
(判断条件2){语句体3}else if
(判断条件3){语句体3}…else if…无限else if

执行流程:先执行判断条件一,如果是true,则执行语句体1,

如果是false则执行判断条件2,如果是true则执行判断条件2

以此类推,如果期间有条件满足,则输出满足条件的判断结果

,然后执行其他语句;如果所有条件都为false则执行完毕;

执行其他语句;

}}
测试数据:1、正确数据;2、边界数据;3、错误数据;
--------–**–--**–----**---**-*-
switch语句:

注意:switch表达式支持 byte、short、char、int;

只支持4种基本类型;从jdk1.5开始支持枚举;

从jdk1.7开始支持String;

case的值是一个常量,且不能重复;

可以省略break,但是省略后,程序则在执行完毕无break的选项后,

继续执行后续选项;

switch语句格式:
	switch(表达式){
	case 值1:语句体1;break
	case 值2:语句体2;break
	case 值3:语句体3;break
		.
		.
		.
	    以此类推
		
	default:语句体;break;			
		}

执行流程:先计算表达式的值,根据表达式的值和case的值

一一比较,如果有相等的case值就执行相应case下的语句体,

再执行break; 如果输入的值没有相等的,则转到default,

执行default的语句体;

实例
impotr java.util.*;

class XX {class static void mian(String[] args){
Scanner s = new Scanner(System.in);

int a = s.nextInt();

switch(a){

case 1 =:System.out.println(aa);

case 2 =:System.out.println(bb);

		.
		.	
		.	
  		.

defalt:System.out.println(cc);	

}}

小作业:输入季节,输出相应的月份。
import java.util.*;
class QQQ {public static void main(String[] args){

	Scanner s = new Scannner(System.in);

	String a = s.nextLine();

switch(a){case"春天":System.out.println("三月");
	case"春天1":System.out.println("四月");
	case"春天3":System.out.println("五月");break;
	case"夏天":System.out.println("六月");	
	case"夏天1":System.out.println("七月");
	case"夏天2":System.out.println("八月");break;
	case "秋天":System.out.println("九月");
	case"秋天2":System.out.println("十月");
	case"秋天3": System.out.println("十一月");break;
	case"冬天":System.out.println("十二月");
	case"冬天2":System.out.println("一月");
	case"冬天3":System.out.println("二月");	break;	

	default:System.out.println("请输入正确的月份");

} }}
default可以放在括号内任意位置,也可省略。

-----------------------********------******--------
循环结构

for 循环、while循环、do…while循环

for循环格式:

    for(初始值;判断条件;控制条件){循环体;}

执行流程:先拿到初始值、判断条件;然后进行判断,

如果结果为false就结束for
循环,如果为true就执行循环体,执行控制条件改变初始值,
拿着改变的初始值和判断条件,则继续进行判断如果是false就
结束循环,如果是true就执行循环体,执行控制条件改变初始值,
重复上述操作,以此类推;

public class XX{public static void main(String[] args){
for(int a = 0;a<10;a++){
System.out.println(“HelloWord”);
}
}}

-----------------------------*
实例:
public class AA{public static void main(String[] args){

//输出数据10-1;
for(int a = 10; a>=1;a--){System.out.println(a);}

//输出1-10的和
int a = 0;
for(int b = 1;b<=10;b++){ 
	a+=b;也可以写为a= a+b;
System.out.println(a);

//求1-100之间的奇数之和

//求和变量
int a = 0;
for(int b = 1;b<=100;b++){
if((i&1!)=0)或者(i%2!=0){a+=b;
System.out.println(a);

第二种方法

int sum = 0;

for(int a = 1;a<=100;a+=2){sum += a;
System.out.println(sum);}
---------------------------------------------------

//输出所有的水仙花数

//abc=a*a*a+b*b*b+c*c*c

c=abc%;   b=(abc/10)%10;  c=abc/100;


int c = 0;(统计数值) 

for(int i = 100;i<1000;i++){
	
//各位	
int ge = i%10;

int shi = (i/10)%10;

int bai = i/100;
//根据条件进行判断

if(i == ge*ge*ge+shi*shi*shi+bai*bai*bai){
System.out.println(i);

c++
System.out.println("一共"+c+"个水仙花数");
} 

}

		}
}}

}}
------–**–---------------------**–*
while循环

格式 while(判断条件){循环体}

while的一般格式:
初始值(判断条件){循环体;控制条件}

循环流程与for循环相同;

-------------------------------------------------

do while循环

格式 
    初始值
do{循环体;控制条件;}while(判断条件)

执行流程: 先获取初始值,执行循环体,执行控制条件改变初始值

拿着改变的初始值和判断条件进行比较,如果是false就结束循环,

如果是true就执行循环,以此类推;

class XXXXX{public static void main(String[] args){
int i = 0;
do{打印XXX;i++}while(i<10);
}}
----**–--------------------------------*––*
三种循环的区别与联系

三种循环可以等价转换

三种循环的使用优先级;
首先 for 其次while 再者 do while

循环内的变量只能在循环内使用;

--*--–**–---------**–*-
利用循环打印

    * * * *
	* * * *
	* * * *
	* * * *
	* * * *

//打印一颗 *
System.out.print("*");

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

	//打印一行 * 

System.out.print("*"); }

//换行

System.out.println();

再打印一行;

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

	//打印一行 * 

System.out.print("*"); }

将上述模块循环,嵌入一个新的for循环

for(int a = 0;a<5;a++)//控制列数

{for(int i =0;i<5;i++ )//控制行数{
System.out.print("*");
} System.out.println();}

打印99乘法表

列数乘以行数

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

System.out.println(i+"x"+a+"="i*a+'t');


}

System.out.println();

       }

--–**------------**************---*–-----
跳转控制语句

break; continue; return(放在以后方法中讲);

class DDD{public static void main(String[] args){

waiceng: for(int a = 1;a<=4;i++){

neiceng: for(int b = 1; b<=5;b++){

	if(b==2)break;//中断当前循环
	
	continue;//跳过当前循环

	break waiceng;(在内循环中结束外层的标号)

	System.out.print("*");			}
	}	
	
	System.out.println();
	}}

一个代码块可以采取标号的形式;

----------------------*-
break 在switch中作为结束语句使用,在循环中作为结束当前循环使用;

continue 在循环中使用,用于跳过此次循环;

return;(以后在方法中讲解)

猜你喜欢

转载自blog.csdn.net/qq_31783363/article/details/94633593
今日推荐