一、基础阶段:

1、用户交互Scanner

Scanner对象:

之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。

java.util.Scanner 是Java5的新特征,我们可以通过Scanner类来获取用户的输入。

基本语法:

Scanner s = new Scanner(System.in);

通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。

next():
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next()方法会自动将其去掉。

3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。

4、next()不能得到带有空格的字符串。

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

用hasNext()

 1 package com.zhexuejia.www.scanner;
2
3 import java.util.Scanner;
4
5 public class Demo01 {
6 public static void main(String[] args) {
7 //创建一个扫描对象,用户接收键盘数据
8 Scanner scanner = new Scanner(System.in);
9
10 System.out.println("使用next方式接收");
11
12 //判断用户有没有输入字符串
13 if(scanner.hasNext()){
14 //使用next方式接收
15 String str = scanner.next();
16 System.out.println("输入的内容为:");
17 }
18
19 //凡是输入IO流的类,如果不关闭会一直占用资源,要养成好习惯用完就关掉;
20 scanner.close();
21
22 }
23 }
使用hasNextLine()
 1 package com.zhexuejia.www.scanner;
2
3 import java.util.Scanner;
4
5 public class Demo02 {
6 public static void main(String[] args) {
7 //从键盘接收数据
8 Scanner scanner = new Scanner(System.in);
9
10 System.out.println("使用next方式接收");
11
12 //判断是否还有输入
13 if(scanner.hasNextLine()){
14 String str = scanner.nextLine();
15 System.out.println("输出的内容为:"+str);
16 }
17 scanner.close();
18 }
19 }
 1 package com.zhexuejia.www.scanner;
2
3 import java.util.Scanner;
4
5 public class Demo03 {
6 public static void main(String[] args) {
7 //创建一个扫描对象,用户接收键盘数据
8 Scanner scanner = new Scanner(System.in);
9
10 System.out.println("请输入数据:");
11
12 //使用nextLine()方式接收
13 String str = scanner.nextLine();
14 System.out.println("输入的内容为:");
15
16
17 //凡是输入IO流的类,如果不关闭会一直占用资源,要养成好习惯用完就关掉;
18 scanner.close();
19 }
20 }
 1 package com.zhexuejia.www.scanner;
2
3 import java.util.Scanner;
4
5 public class Demo04 {
6 public static void main(String[] args) {
7 Scanner scanner = new Scanner(System.in);
8
9 //从键盘接收数据
10 int i = 0;
11 float f = 0.0f;
12
13 System.out.println("请输入整数:");
14 if(scanner.hasNextInt()){
15 i = scanner.nextInt();
16 System.out.println("输出的整数为:"+i);
17 }else {
18 System.out.println("输入的不知整数!");
19 }
20 System.out.println("请输入小数:");
21 if(scanner.hasNextFloat()){
22 f = scanner.nextFloat();
23 System.out.println("输出的小数为:"+f);
24 }else {
25 System.out.println("输入的不知小数!");
26 }
27
28
29
30 scanner.close();
31 }
32 }
 1 import java.util.Scanner;
2
3 public class Demo05 {
4 public static void main(String[] args) {
5 Scanner scanner = new Scanner(System.in);
6
7 //我们乐园输入多个数字,并求其总和和平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出结果
8 double sum = 0;
9 //输入了多少个数字
10 int m = 0;
11
12 while (scanner.hasNextDouble()){
13 double x = scanner.nextDouble();
14 m++;
15 sum = sum + x;
16 }
17 System.out.println(m + "个数的和为:"+sum);
18 System.out.println(m + "个数的平均值为:" +(sum / m));
19 scanner.close();
20 }
21 }

顺序结构:

JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序- -句- -句执行。
顺序结构是最简单的算法结构。

语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤

组成的,它是任何一-个算法都离不开的一种基本算法结构。

选择结构:

1、if单选择结构

◆我们很多时候需要去判断十个东西是否可行,)然后我们才去执行,这样一个过程在程序中用if语句来表示

语法:

if(布尔表达式){
//如果布尔表达式为true将执行的语句
}

2、if双选择结构

◆那现在有个需求,公司要收购一个软件,成功了,给人支付100万元,失败了,自己找人开发。
这样的需求用一个if就搞不定了,我们需要有两个判断,需要- -个双选择结构,所以就有了if-
else结构。

 语法:

1 if(布尔表达式){
2 //如果布尔表达式为true将执行的语句
3 }else{
4 //如果布尔表达式为flase
5 }
 1 import java.util.Scanner;
2
3 public class ifDemo02 {
4 public static void main(String[] args) {
5 //考试分数大于60就是及格,小于60分就是不及格
6 Scanner scanner = new Scanner(System.in);
7 System.out.println("请输入成绩:");
8 int score = scanner.nextInt();
9 if(score > 60){
10 System.out.println("及格");
11 }else{
12 System.out.println("不及格");
13 }
14 }
15 }

3、if多选择结构

我们发现刚才的代码不符合实际情况,真实的情况还可能存在ABCD,存在区间多级判断。比如
90-100就是A, 80-90就是B..等等,在生活中我们很多时候的选择也不仅仅只有两个,所以我
们需要一个多选择结构来处理这类问题!

 语法:

 1 import java.util.Scanner;
2 public class ifDemo03 {
3 public static void main(String[] args) {
4 //考试分数大于60就是及格,小于60分就是不及格
5 Scanner scanner = new Scanner(System.in);
6 System.out.println("请输入成绩:");
7 int score = scanner.nextInt();
8 if(score == 100){
9 System.out.println("满分");
10 }else if(score < 100 && score >=90){
11 System.out.println("A级");
12 }else if(score < 90 && score >=80){
13 System.out.println("B级");
14 }else if(score < 80 && score >=70){
15 System.out.println("C级");
16 }else if(score < 70 && score >=60){
17 System.out.println("D级");
18 }else if(score < 60 && score >=0){
19 System.out.println("D级");
20 }else {
21 System.out.println("成绩不合法");
22 }
23 }
24 }

4、嵌套的if结构

使用嵌套的if..else语句是合法的。也就是说你可以在另- -个if或者else if语句中使用if或
者else if语句。你可以像if语句- -样嵌套else if..else.

语法:

5、switch多选择结构

◆多选择结构还有一个实现方式就是switch case语句。
◆switch case语句判断-一个变量与一系列值中某个值是否相等,每个值称为-个分支。

switch语句中的变量类型可以是:
byte、short, int 或者char。
从JavaSE7开始
switch支持字符串String类型了
同时case标签必须为字符串常量或字面量。

 1 package com.zhexuejia.www.struct;
2
3 public class SwitchDemo01 {
4 public static void main(String[] args) {
5 //成绩
6 char grade = 'C';
7 switch (grade){
8 case 'A':
9 System.out.println("优秀");
10 break;//可选.跳出循环
11 case 'B':
12 System.out.println("良好!");
13 break;
14 case 'C':
15 System.out.println("及格!");
16 break;
17 case 'D':
18 System.out.println("再接再厉");
19 break;
20 case 'E':
21 System.out.println("不及格!挂科");
22 break;
23 default:
24 System.out.println("未知等级!");
25 }
26 }
27 }

 反编译:

 注意:一个好的程序员,要学会怎么看源码;

循环结构:

1、while循环

while是最基本的循环,它的结构为:
 1 while(布尔表达式){ 2 //循环内容 3 }

  1. 只要布尔表达式为true,循环就会一直执行下去。
  2. 我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。
  3. 少部分情况需要循环一直执行,比如服务器的请求响应监听等。
  4. 循环条件一直为true就会造成无限循环【死循环】,我们正常的业务编程中应该尽量避免死循环。
  5. 会影响程序性能或者造成程序卡死奔溃!
  6. 思考:计算1+2+3+...+100=?
 1 public class WhileDemo03 {
2 public static void main(String[] args) {
3 //计算1+2+3+...+100=?
4 int i=0;
5 int sum=0;
6 while (i<=100){
7 sum = sum+i;
8 i++;
9 }
10 System.out.println("总和:"+sum);
11 }
12 }

2、do...while循环

◆对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,
也至少执行一次。
do...while循环和wvhile循环相似,不同的是,do...while 循环至少会执行一次。
 1 do { 2 //代码语句1 3 }while(布尔表达式);

 1 public class DoWhileDemo01 {
2 public static void main(String[] args) {
3 //计算1+2+3+...+100=?
4 int i=0;
5 int sum=0;
6 do{
7 sum = sum+i;
8 i++;
9 }while (i<=100);
10 System.out.println("总和:"+sum);
11 }
12 }

◆While和do-While的区别:
while先判断后执行。dowhile是 先执行后判断!
◆Do...while总是保证循环体会被至少执行- -次! 这是他们的主要差别。

 1 public class DoWhileDemo02 {
2 public static void main(String[] args) {
3
4 int a=0;
5 while (a < 0){
6 System.out.println(a);
7 a++;
8 }
9 System.out.println("===============");
10 do{
11 System.out.println(a);
12 a++;
13 }while (a<0);
14 }
15 }

for循环

◆虽然所有循环结构都可以用while或者d...while表示,但Java提供了另-种语句-- for
循环,使- -些循环结构变得更加简单。
◆for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。
◆for循环执行的次数是在执行前就确定的。语法格式如下:
for(初始化;布尔表达式;更新) {
//代码语句
}
◆练习1:计算0到1 00之间的奇数和偶数的和

 1 public class WhileDemo01 {
2 public static void main(String[] args) {
3 //输出1~100
4 int i= 0;
5 System.out.println(i++);
6
7 //条件满足。执行循环体;否则退出循环
8 while(i<100){
9 i++;
10 System.out.println(i);
11 }
12 }
13 }

◆练习2: 用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个

 1 public class ForDemo03 {
2 public static void main(String[] args) {
3 //用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
4 for (int i = 0; i <= 1000; i++) {
5 if(i % 5==0){
6 System.out.print(i+"\t");
7 }
8 if(i%(5*3)==0){
9 System.out.println();
10 }
11 }
12 //for循环结束
13 System.out.print("\n");
14 System.out.println("for循环结束");
15
16 int i =0;
17 while(i <= 1000){
18 if(i % 5 ==0){
19 System.out.print(i+"\t");
20 }
21 if(i%(5*3)==0){
22 System.out.println();
23 }
24 i++;
25 }
26
27 }
28 }

◆练习3:打印九九乘法表

 1 public class ForDemo04 {
2 public static void main(String[] args) {
3 //练习3:打印九九乘法表
4
5 for (int i = 1; i <= 9; i++) {
6 for(int z =1;z <= i;z++ ){
7 System.out.print(i+"*"+z+"="+(i*z) + "\t");
8 }
9 System.out.println();
10 }
11 }
12 }

在Java5中引入了一种主要用于数组的增强型for循环。

◆这里我们先只是见- -面,做个了解,之后数组我们重点使用
◆Java5引入了- -种主要用于数组或集合的增强型for循环。
◆Java增强for循环语法格式如下:
for(声明语句:表达式)
//代码句子
}
◆声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循
环语句块,其值与此时数组元素的值相等。
◆表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

 1 public class ForDemo05 {
2 public static void main(String[] args) {
3 int[] numbers = {10,20,30,40,50};//定义一个数组
4
5 //遍历数组的元素;把数字numbers中的每一个元素遍历后赋值给x
6 for(int x : numbers){//
7 System.out.println(x);//从x中取值
8 }
9 }
10 }

break continue:
◆break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,
不执行循环中剩余的语句。(break语句也在switch语句中使用)
◆continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,
接着进行下一-次是否执行循环的判定。
◆关于goto关键字
◆goto关键字很早就在程序设计语言中出现。尽管goto仍是Java的- 一个保留字,但并未在语言中得到正式使用; Java
没有goto。然而,在break和continue这两个关键字的身上, 我们仍然能看出-些goto的影子---带标签的break和

 1 public class BreakDemo {
2 public static void main(String[] args) {
3 int i = 0;
4 while (i<100){
5 i++;
6 System.out.println(i);
7 if(i == 30){
8 break;
9 }
10 }
11 }
12 }

continue.

“标签”是指后面跟-一个冒号的标识符,例如: label:
◆对Java来说唯- -用到标签的地方是在循环语句之前。而在循环之前设置标签的唯-理由是:我们希望在其中嵌套另一
个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,它们就会中断到存在标签的地方。

 1 public class LableDemo {
2 public static void main(String[] args) {
3 //打印101到1500之间的质数
4
5 int count = 0;
6 //若随同标签使用,它们就会中断到存在标签的地方。
7 outer:for(int i = 101;i<= 150 ;i ++){
8 for(int j = 2;j < i/2;j++){
9 if(i % j == 0){
10 continue outer;
11 }
12 }
13 System.out.print(i +" ");
14 }
15 }
16 }

练习:

 1 public class TestDemo01 {
2 public static void main(String[] args) {
3 //打印三角形 5行
4
5 for (int i = 0; i < 5; i++) {
6 for (int j = 5; j > i; j--) {
7 System.out.print(" ");
8 }
9 for (int j = 1; j <= i; j++) {
10 System.out.print("*");
11 }
12 for (int j = 1; j < i; j++) {
13 System.out.print("*");
14 }
15 System.out.println();
16
17 }
18
19 }
20 }

java流程控制;的更多相关文章

  1. JAVA流程控制

    JAVA流程控制 example1: --输出九九乘法表 public class chengfabiao { public static void main (String[] args){     ...

  2. Java学习笔记之:Java流程控制

    一.介绍 Java流程控制包括顺序控制.条件控制和循环控制. 顺序控制,就是从头到尾依次执行每条语句操作.条件控制,基于条件选择执行语句,比方说,如果条件成立,则执行操作A,或者如果条件成立,则执行操 ...

  3. Java流程控制练习--万年历

    Java流程控制练习--万年历 标签: Java入坑之旅 0x01. 打印倒三角和正三角 public static void main(String[] args) { // TODO Auto-g ...

  4. Java 流程控制

                                   Java    流程控制 Java 分支结构 - if...else/switch 顺序结构只能顺序执行,不能进行判断和选择,因此需要分支 ...

  5. JAVA 流程控制之选择语句

    在程序设计时,有三种基本技术可以改变程序的流程控制: 调用方法: 选择: 循环. 在这里,我们主要来讲讲选择语句. JAVA中的选择语句与C语言中的基本相同,包括: if 语句: if/else 语句 ...

  6. 《快乐编程大本营》java语言训练班-第4课:java流程控制

    <快乐编程大本营>java语言训练班-第4课:java流程控制 第1节. 顺序执行语句 第2节. 条件分支语句:if条件语句 第3节. 条件分支语句:switch 条件语句 第4节. 条件 ...

  7. Java流程控制,for,switch,while.break,continue,return

    Java流程控制,for,switch,while.break,continue,return

  8. 053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结

    053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结 本文知识点: 流程控制知识总结 流程控制知识总结 选择结构语句 循环结构语句 ...

  9. 052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试——debug2 多断点调试程序

    052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试--debug2 多断点调试程序 本文知识点: Eclipse下程序调 ...

  10. 051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试——debug入门1

    051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试--debug入门1 本文知识点: 程序调试--debug入门1 程序 ...

随机推荐

  1. uniapp 弹窗输入

    借鉴链接:https://blog.csdn.net/qq_40894259/article/details/110200721 <template> <view class=&qu ...

  2. Java调用Kettle

    Java 调用 kettle,难的不是怎么调用,而是解决 maven 依赖冲突问题,直接将 kettle 依赖,添加到我们的 maven 工程,可能会导致代码大范围报错:解决方案也很简单,就是直接从 ...

  3. BottomNavigationBar 自定义 底部导航条、以及实现页面切换

    一.Flutter BottomNavigationBar 组件 BottomNavigationBar 是底部导航条,可以让我们定义底部 Tab 切换,bottomNavigationBar是 Sc ...

  4. vue store用法

    import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) 首字母不能大写 export default new Vuex.Store({ ...

  5. (二)REDIS-重要概念与原理

    1 Redis的概念: Redis是一种key-value类型的内存数据库,可以用于保存string,list,set,sorted set,hash等多种数据结构.由于整个数据库统统加载在内存中进行 ...

  6. Android studio学习笔记1

    Android studio学习笔记1 20201303张奕博 2023.1.13 studio布局 1.线性布局 Android的线性布局不会换行,当组件一个挨着一个地排列到头之后,剩下的组件将不会 ...

  7. kibana7.6.2源码开发编译

    1.进入kibana的github网址,选择自己需要的kibana版本,因为项目使用的是elasticseach7.6.2,所以我选择的是kibana v7.6.2 2.通过git命令clone所需要 ...

  8. python实现字典的排序

    var dic = {c:4, a:2, d:3, b:1}; // 定义一个字典 console.log("输出最初的字典元素: "); for(var key in dic){ ...

  9. python中的import、from import以及import as的区别

    import import是python提供的用于导入模块的机制,导入的是整个模块的内容.模块可以是py.pyc.pyd,可以是系统自带的,也可以是自定义的. 使用语法:import os pytho ...

  10. laravel 导入导出(实际上还是php代码实现)

    1.导出 public function excel(){        $data=User::all();        $data=json_decode(json_encode($data), ...