一、基础阶段:

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. top usage

    https://www.cnblogs.com/dragonsuc/p/5512797.html

  2. git 修改 .gitignore 不生效

    在使用 Git 时候,发现在 .gitignore 文件中添加内容后,推送成功后并没有生效. 出错原因: .gitignore 文件的内容不对历史文件生效 情景复现: 1. 远端已经有了 .idea ...

  3. python retry装饰器

    from functools import wraps import time # def retry(retry_time, retry_on_result, time_wait): # def t ...

  4. 当前工程中typescritpt依赖包与依赖包中依赖包类型不一致如何解决

    在开发中,遇到文件中引入webpack,但是webpack.ICompiler不一致的情况 //import webpack from 'webpack'; import webpackHot fro ...

  5. 清理缓存tc

    /$SYNC 今天修改自建表的字段,换了参考字段但是SE16N显示一直没有改变,删字段,删表都尝试依旧无果,实际上只是没有清理缓存,扑街,留存

  6. 32.自定义Java异常捕获处理类及其使用

    自定义异常捕获处理类 /** * <h1>异常捕捉</h1> * */ public class ExceptionHandler implements Thread.Unca ...

  7. Python request模块 携带cookie

    # _*_coding:utf-8 _*_ import time import requests import json import sys import random import string ...

  8. 时钟频率(HZ)与数据传输速率(bit/s)的关系-转载

    (24条消息) 时钟频率(HZ)与数据传输速率(bit/s)的关系_子曰小玖的博客-CSDN博客_速率和频率的关系 时钟频率(HZ)与数据传输速率(bit/s)两者是相同的概念.举例:IIC传输位速率 ...

  9. nacos2.1 新增配置发布失败。请检查参数是否正确

    使用官方的docker部署方式,部署了一个单节点nacos server,部署完了后发布配置信息,报错"新增配置发布失败.请检查参数是否正确" 解决方法: 在nacos mysql ...

  10. MarkDown学习笔记1

    # MarkDown学习(一级标题)## 标题(二级)### 三级标题#### 四级标题## 字体*Hello,World!斜体***Hello,World!加粗*****Hello,World!加粗 ...