java流程控制图_Java流程控制

Java流程控制

用户交互Scanner

顺序结构

选择结构

循环结构

break&continue

练习

Scanner对象

通过Scanner类来获取用户的输入

语法

Scanner s = new Scanner (System.in);//system.in输入out输出

通过hasNext()或者hasNextLine()判断是否还有输入的数据

通过next()或者nextLine()获取输入的字符串,其中next不能得到带有空格的字符串,忽略有效字符前遇到的空格,有效字符后的空格座位分隔符或结束符.

nextLine输入一行以Enter为结束符,可以获得空格

Scanner scanner = new Scanner(System.in);

if(scanner.hasnext()){

//会等待用户输入,

String str = scanner.next();

System.out.println("输入内容位",str);

}

//***凡是属于IO流的类如果不关闭就会一直占用资源,用完要关闭,写scanner就先也把关闭写上***

scanner.close;

其他方法

hasNextInt(),nextInt();

应用

输入多个数字,求总和平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出结果

Scanner scanner = new Scanner(System.in);

//和用double标识,可以接收整数小数,后面也用hasnextDouble来判段,非数字停止

double sum = 0;

//输入个数

int m = 0;

while(scanner.hasNextDouble()){

sum+=scanner.nextDouble();

m++;

}

System.out.println(m + "个数的和为"+sum);

System.out.println(m + "个数的平均值为" + sum/m);

scanner.close();

三种结构

顺序结构--java的基本结构就是顺序结构,从上到下

选择结构--if-else,switch (注意程序要严谨,考虑输入越界情况)

switch 语句中的变量类型可以是byte,short,int或者char.

从JDK7开始switch支持字符串String类型,case标签必须为字符串常量或字面量

每个case后要有break,否则会出现case穿透现象匹配后面都执行了

扩展--字符的本质还是数字的

反编译 java---class 用IDEA就可以反编译class文件(直接把class文件丢到IDEA里)

IDEA里打开工程键,可以看到项目输出的class文件保存的位置。

在IDEA里打开文件夹直接打入class文件,文件图标上显示01会自动反编译。可以看到case里原本循环的字符串都对应一个hashcode数字值。

9132041940212095f521fd45fa445dc8.png

循环结构--while/do...while/for (java5中引入数组的增强型for循环)

while(true)死循环,一直运行用于服务器监听等待客户端连接,定时检查

for循环高效灵活,在执行前就确定了执行次数,在IDEA里直接可以100.for写出循环100次的for循环

for(;;)初始化,判断条件和迭代都可以时空,此时为死循环

应用1:

0到100之间的奇数和,偶数和

int evenSum = 0;

int oodSum = 0;

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

if (i%2 == 0){

evenSum+=i;

}else{

oodSum+=i;

}

}

应用2:

用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个 [%(5*3]

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

if(i%5 ==0){

System.out.print(i+"\t");

}

if (i%(5*3)==0){

System.out.println();//或者print("\n")换行

}

}

应用3打印99成分表:

/* 拆分问题1.先打印出第一列

2.外面嵌套循环打印出来多行

3.去掉重复的 i<=j

4.调整样式

*/

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

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

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

}

}

增强for循环

jdk5引入,主要用于数组或者集合的增强型for循环,简化for循环为了偷懒,把数组或者集合里的值依次复制给前面的变量进行循环.

int[] numbers ={10m20,30,40,50};

for(int x:numbers){

System.out.println(x);

}

5.break & continue

break强制退出循环,continue跳过当前这次循环,继续下次循环

6.goto

java基本不用,使用label:+continue来完成

打印101-150之间所有质数

outer:for(int i = 101; i < 150; i++){

for (int j = 2; j < i/2; j++){

//如果非质数,跳出循环到label outer处,继续执行下一次循环

if(i%j==0){

continue outer;

}

}

System.out.print(i+ "\t");

7.练习打印一个5行的三角形

9a6cf2f517027474d5fe1174e5616a40.png

思路三角形分成两半打印,然后想象三角形外面有个正方形,先从多到少打印空格,然后在打印*左边的直角三角形。

最后再打印右边的三角形

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

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

System.out.print(" ");

}

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

System.out.print("*");

}

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

System.out.print("*");

}

System.out.println();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值