流程控制(内含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循环嵌套理解可能会困难,但需要练习直到完全能自主编写出效果才行

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

  1. ActionScript 3.0 Step By Step系列(三):学学流程控制,编编if-else switch while for

    通过前两篇文章对ActionScript 3.0的开发环境和语法基础的介绍,相信已对ActionScript 3.0的编程有了个初步的认识.从本文开始,将逐步的对ActionScript 3.0的语法 ...

  2. java switch 条件_Java ——if条件语句 switch语句

    本节重点思维导图 if条件语句 //如果条件表达式成立,执行语句块 if(条件表达式){ //-语句块 } 如果语句块只有一条语句,大括号可以省略,否则不能省略. 建议,不管有几条语句,都不要省略大括 ...

  3. c++语句switch语句_错误:案例标签不在C中的switch语句内

    c++语句switch语句 The error: case label not within a switch statement occurs in C language with switch c ...

  4. 运算符-if语句-switch语句-循环语句-continue/break语句

    一.java中的运算符         1.赋值运算符 =         2.算数运算符[+   -   *   /   %(求余)   ++(自动加1)    --(自动减1)]         ...

  5. C语言秃头笔记--分支语句switch语句

    如果我现在需要输入一个值, 当它为1时,打印星期一; 当它为2时,打印星期二; 当它为3时,打印星期三; ....... 当它为7时,打印星期天. 这个时候我们再用if else语句就会略显麻烦,所以 ...

  6. JAVA语言中流程控制(顺序结构、判断语句、循环语句)

    流程控制: 程序在执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的,所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过控制语句的执行顺序来实现想要的功能.java中流程控制有:顺 ...

  7. 关于java中的中的控制语句 详解第二篇——选择语句——switch语句

    本文中将详细介绍 java中的控制语句 包括 语法规则.代码图片.执行原理.构建思路等. 若有细瑕,感谢指正! java中的控制语句 控制语句即用来实现对程序流程的选择.循环.转向和返回等进行控制. ...

  8. 基础知识—条件判断语句-switch语句

    if语句是单一分支选择的,C++又提供了一种多分支选择的switch语句. switch语句的一般表现形式 switch(表达式) { case 表达式常量1: 语句1: break; case 表达 ...

  9. goto语句 switch语句

    goto语句 #include <iostream> using namespace std;int main() {int i = 1; number:i++;std::cout< ...

  10. JS 丨JavaScipt条件语句+switch语句学习笔记(四)

    目录 第1章 条件语句 1.1 if 语句 1.2 if...else 语句 1.3 if-else if-else 语句 第2章 switch 语句 2.1 switch语句中-default 关键 ...

最新文章

  1. 记住这35个英文单词,你就可以在RPA界混了!
  2. 关于Android开源库分享平台,(GitClub)微信小程序的开发体验
  3. Linux空间过满无法登录,linux下磁盘空间不足导致oracle无法登录的解决方案
  4. python中的__str__ __name__ 和__call__方法
  5. 微软2021校园招聘正式启动
  6. ORACLE 执行计划分析
  7. C语言单片机中延时程序的实现
  8. java 什么时候用递归_如果要用Java实现算法,一定慎用递归
  9. grub rescue的修复方法
  10. ELK收集docker日志
  11. docker 修改启动命令_Docker映射详解,没问题了!
  12. 计算机等级一考通2021,2021驾校一考通题库
  13. [js高手之路]深入浅出webpack教程系列3-配置文件webpack.config.js详解(下)
  14. 010 Editor逆向分析文档
  15. 如何安装CentOS 8
  16. java导出pdf 含图片_【Java】itext根据模板生成pdf(包括图片和表格)
  17. android 系统重新安装程序,安卓手机系统怎么重装
  18. 电脑老是显示无网络连接到服务器,电脑怎么老弹出无法与服务器建立连接
  19. 硬盘无法访问设备未就绪,里面的数据怎么找回
  20. 【LSSVM回归预测】基于matlab人工蜂群算法优化最小二乘支持向量机LSSVM数据回归预测【含Matlab源码 2213期】

热门文章

  1. java 新生代中的Eden与两个Survivor区详解
  2. VirtualBox设置主机与centOS7虚拟机共享文件夹
  3. Eclipse卸载安装的插件
  4. glRasterPos2f函数介绍
  5. vue生命周期以及顺序
  6. halcon模板匹配
  7. 1.1 解惑:运放的输入输出电压范围
  8. linux阻塞线程等待唤醒,linux – POSIX消息队列 – mq_send线程唤醒命令
  9. python麻将机器人_tensorflow麻将智能出牌源码-机器学习代码类资源
  10. 【职场时光】如何更好的提升自己?