300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 流程控制(内含scanner if语句 switch语句 while和for循环)

流程控制(内含scanner if语句 switch语句 while和for循环)

时间:2021-10-04 17:25:01

相关推荐

流程控制(内含scanner if语句 switch语句 while和for循环)

流程控制(内含scanner、if语句、switch语句、while和for循环)

用户交互Scanner

通过引用scanner类获取用户的输入,下面代码可以直接背着用

Scanner scanner = new Scanner(System.in);//获取键盘(控制台)输入的数据

灵活使用scanner的方法:

一般用的是nextLine()方法,而不是next()方法;

如果对数据类型有要求,可以使用nextInt()、nextFloat()、nextDouble()等方法

这里是next()方法

if (scanner.hasNext()){//判断有没有字String str = scanner.next(); //有字的条件为true的话就定义变量str

这里是nextLine()方法

if (scanner.hasNextLine()){String str =scanner.nextLine();//next()方法不能得到带有空格的字符串,而nextLine()方法可以

这里是nextInt()方法

if (scanner.hasNextInt()){i = scanner.nextInt();

这里是nextDouble()方法

while (scanner.hasNextDouble()){//scanner输入了有数据吗↓double x =scanner.nextDouble(); //,有就用x接收scanner收到的一行数据

Scanner实例

慢慢看注释吧

//题目:我们输入多个数字,并求其总和与品均属每每输入// 一个字母用回车确认,通过输入非数字来结束输入并输出执行结果public class Demo05 {public static void main(String[] args) {//以下是自己写的Scanner scanner = new Scanner(System.in);//获取键盘(控制台)输入的数据System.out.println("请输入数字(输入字母用回车确认即可结算总和和平均数):");double sum = 0;//总和double cs=0;//次数while (scanner.hasNextDouble()){//scanner输入了有数据吗↓double x =scanner.nextDouble(); //,有就用x接收scanner收到的一行数据sum = sum + x;//用sum累加每次输入的值cs++; //次数加1System.out.println("这次是第"+cs+"次,该次的sum为:"+sum);}//结束while循环System.out.println("计算结束,总数为:"+sum+",平均数为:"+(sum/cs));scanner.close();//记得挂掉IO流的类}}

运行结果:

顺序结构

是最简单的算法结构

任何一个算法都离不开的一种基本算法结构

选择结构

if选择结构

if单选择结构

if双选择结构

//例如if (score>=60){System.out.println("及格了");}else {System.out.println("没及格");}

if多选择结构

//例如if (score==100){System.out.println("恭喜满分");}else if (score<100&&score>=80){System.out.println("优秀的");}else if (score<80&&score>=60){System.out.println("及格了");}else if (score<60&&score>=0){System.out.println("没及格,要再加油");}else {System.out.println("请输入正确格式");}

if嵌套结构

switch多选择结构

//没啥好说 直接看代码,个人喜好请包涵switch (name){case "子仁"://case有穿透功能System.out.println("我");break;//需要break停止穿透,如果没有break,后面的”喜欢看辉夜大小姐想让我告白“会一起输出case "见青":System.out.println("喜欢看");break;case "啊":System.out.println("辉夜大小姐");break;default://除了以上三种情况外的情况执行这条指令System.out.println("想让我告白");}

需要提醒的JDK7之后switch语句才能使用String类型

其原理是将String的类型转为hashCode

(如何看到编译过的class呢)

1.先复制这里

2.把复制的路径打开,将里面的字节码文件放入到idea项目的包里面,如图

3.如何idea就会显示你能看得懂的字节码文件了,以下图片是对比图(右是字节码文件)

循环结构

while循环

//也是直接看例子吧//题目是计算1+2+...+99+100的结果int a = 0;int b = 0;while (a<=100){//注意要有结束的条件,避免死循环b=b+a;a++;System.out.println(b);}System.out.println("最终答案为"+b);

运行结果:

tips:这个是死循环

死循环也有自己的作用

do-while循环

相当于把中括号提前了并加了个do

代码例子:

While和do-While的区别:

do-While至少被执行一次while是先判断再执行,do-while是先执行再判断

for循环

for循环的快捷键

先打要进行循环的次数,再输入“.for”

死循环的原理

for循环是先初始化,再判断布尔表达式,再更新,再判断布尔表达式,再更新,知道布尔表达式不满足true停止循环

for循环实例(乘法表)

//题目1:计算0到100之间的奇数和偶数的和 int maxo= 0;int maxj= 0;for (int i = 0;i<100;i+=1){if (i%2==0){maxo+=i;}else {maxj+=i;}}System.out.println("偶数总和为"+maxo+",奇数总数为"+maxj+",总计为"+(maxj+maxo) );//题目2:用for循环输出1-1000之间能被5整除的数,并且每行输出3个for (int i = 1; i <= 1000; i++) {if (i%5==0){System.out.print(i+" ");//注意,如果是平常的System.out.println(),每个输出结构会隔一行//但System.out.print()不会换行}if (i%15==0){System.out.print("\n"); //复习一下\n是换行的意思,\t是8个空格即Tab的效果}}//题目3:打印九九乘法表for (int i = 1; i <= 9; i++) {for (int j = 1; j <= i; j++) {//乘法表的技巧是先把一列写好,在利用循环嵌套好第一个循环,最后调整格式System.out.print(i+"*"+j+"="+(i*j)+"\t");}System.out.println();}

增强for循环

用于简化数组或集合的for循环

分割线划分了两种不同的数组的写法

int[] num = {10,20,30,40,50}; //定义了一个数组for (int x: num){//增强for循环 用来简化偷懒编写数组和集合的for循环的System.out.println(x);}System.out.println("-----------");for (int i = 0;i<5;i++){//普通写法System.out.println(num[i]);}

break&continue

break用于终止循环

continue是终止正在跑的那次循环,跳过后面的东西再重新开始循环,例:

练习

//打印三角形,要把三角形拆分为三部分进行编码for (int i = 1; i <= 5; i++) {//代表三角形的五行for (int j = 5; j >= i; j--) {System.out.print(" ");//代表左边由空格组成的小三角形}for (int u = 1; u <= i; u++) {//代表左边由星号组成的小三角形System.out.print("*");}for (int k = 1; k < i; k++) {//代表右边由星号组成的小三角形System.out.print("*");}System.out.println(); //每一行后记得换行,也能用\n代替}

效果图:

如果不理解其中的运行的过程

左击边框直到出现红点点

点debug

点此图标代表下一步

心得:for循环嵌套理解可能会困难,但需要练习直到完全能自主编写出效果才行

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。