目录

1、用户交互Scanner

2、Scanner进阶使用

3、顺序结构

4、if选择结构

(1)if单选则结构

(2)if双选择结构

(3)if多选择结构、if嵌套结构

5、Switch选择结构

6、While循环详解

7、DoWhile循环

8、For循环详解

9、增强for循环

10、break、continue、goto
​​​​​​​


1、用户交互Scanner

·两种方法的区别主要在于”结束符“不一样

·next():分隔符:空格

1、一定要读取到有效字符后才可以结束输入。

2、对输入有效字符之前遇到的空白,next()方法会自动将其去掉。

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

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

·nextLine(): 分隔符:回车

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

2、可以获得空白。

package liuchengkongzhi.scanner;
import java.util.Scanner;
// 交互输入
public class Demo01 {public static void main(String[] args) {// 创建一个扫描对象,用于接收键盘数据Scanner scanner = new Scanner(System.in);System.out.println("使用next方式接收:");// 判断用户有没有输入字符if (scanner.hasNext()){String str = scanner.next();System.out.println("输出的内容为:"+str);}// 凡是属于IO流的类如果不关闭会一直占用资源,所以用完之后应该关闭scanner.close();}
}
package liuchengkongzhi.scanner;
import java.util.Scanner;
public class Demo02 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("使用nextLine方式接收:");if (scanner.hasNextLine()){String a = scanner.nextLine();System.out.println("输出的内容为:"+a);}scanner.close();}
}

2、Scanner进阶使用

package liuchengkongzhi.scanner;
import java.util.Scanner;
public class Demo04 {public static void main(String[] args) {
// 我们可以输入多个数字,并求其总和和平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果Scanner scanner = new Scanner(System.in);// 和double sum = 0;// 计算输入了多少个数字int m =0;System.out.println("请输入数据:");// 通过循环判断是否还有输入,并在里面对每一次进行求和统计while(scanner.hasNextDouble()){double x = scanner.nextDouble();m++;sum = sum + x;System.out.println("你输入了第"+m+"个数据,然后当前结果sum="+sum);}System.out.println(m + "个数的和为:" + sum);System.out.println(m + "个数的平均数为:" + (sum/m));scanner.close();}
}

3、顺序结构

JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。顺序结构是最简单的算法结构。语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。

4、if选择结构

(1)if单选则结构

package IF0410;
import java.util.Scanner;
// if单选择结构
public class DemoIf01 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入内容:");String s = scanner.nextLine();// equals 判断字符串是否相等if(s.equals("Hello")){System.out.println("hi "+s);}System.out.println("End");scanner.close();}
}

(2)if双选择结构

package IF0410;
import java.util.Scanner;
// if双选择结构
public class IFDemo02 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入成绩:");// 如果分数大于等于60就是及格,小于60就是不及格if(scanner.hasNextDouble()) {double score = scanner.nextDouble();if (score >= 60) {System.out.println("及格!");} else {System.out.println("不及格!");}}scanner.close();}
}

(3)if多选择结构、if嵌套结构

package IF0410;
import java.util.Scanner;
// if多选择结构
public class IFDemo03 {public static void main(String[] args) {// 成绩100-90:A 90-80:B 80-70:C 70-60:D 60-不及格Scanner scanner = new Scanner(System.in);System.out.println("请输入成绩:");int score = 0;if (scanner.hasNextInt()) {// 这里时嵌套的if结构,防止没有输入score = scanner.nextInt();if (score == 100) {System.out.println("恭喜满分!");} else if (score < 100 && score >= 90) {System.out.println("A");} else if (score < 90 && score >= 80) {System.out.println("B");} else if (score < 80 && score >= 70) {System.out.println("C");} else if (score < 70 && score >= 60) {System.out.println("D");}else if (score < 60 && score >=0) {System.out.println("不及格!");} else{System.out.println("输入成绩错误");}scanner.close();}}
}

5、Switch选择结构

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

switch语句中的变量类型可以是:

  • 1、byte、short、int或者char、String
  • 2、同时case标签必须为字符串常量或字面量。
package Switch0410;public class Demo01 {public static void main(String[] args) {//case穿透char grade = 'E';System.out.println("输入的成绩等级是:"+grade);switch(grade){case 'A':System.out.println("优秀");break;case 'B':System.out.println("良好");break;case 'C':System.out.println("及格");break;case 'D':System.out.println("再接再厉");break;case 'E':System.out.println("不及格");// break;//如果不加break,则当匹配到当前情况时,不止会输出匹配到的内容,也会输出后面的内容default: // 匹配不到则返回默认值结果System.out.println("成绩不合理!");}}
}

public class Demo02 {public static void main(String[] args) {String name = "Merak";switch(name){case "Merak":System.out.println("美女!");break;case "Zhang Xuan":System.out.println("学霸!");break;default:System.out.println("你输入的不是主人的名字!");}}
}

在Java SE7以后switch的变量可以是String,但本质上还是将它先变成字节码,然后匹配。

java文件在编译之后会生成class文件,class文件是字节码文件,人是无法看懂的,但是可以通过IDEA反编译

在File-->Project Structure -->Compiler  output中可以找到Java编译后生成的class文件

右键点击找到所在的package所在的文件位置,并且将编译后的class文件复制到该路径下

然后在IDEA中点开class文件

可以看到,首先将string编译为哈希码,并且引入中间变量var3来判断。

6、While循环详解

注意控制循环结束条件,不要写成死循环了

package While0411;
// 输出1-100
public class Demo01 {public static void main(String[] args) {int i = 0;while(i<100){// 控制训练结束i++;System.out.println(i);}}
}// 1加到100
class Demo02{public static void main(String[] args) {int i = 0;int sum = 0;while(i<100){i++;sum+=i;}System.out.println(sum);}
}

7、DoWhile循环

while:先判断条件是否成立再执行

do-while:先执行一遍再判断条件是否成立

对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,
也至少执行一次。do...while循环和while循环相似,不同的是,do...while循环至少会执行一次。

package While0411;
public class DoWhile {public static void main(String[] args) {int i = 0;int sum = 0;do{i++;sum+=i;}while(i<100);System.out.println(sum);}
}
package While0411;public class Contrast {public static void main(String[] args) {int i = 0;while(i<0){i++;System.out.println(i);}System.out.println("#############################");do{i+=2;System.out.println(i);}while(i<0);}
}

8、For循环详解

for循环执行的次数是在执行前就确定的。语法格式如下

// 初始值;循环条件;迭代
for(int i=1;i<=99;i+=2){
// i首先判断是否满足条件,满足则执行语句,执行完之后再迭代

快捷输入:


练习1:计算0到100之间的奇数和偶数的和

package For0411;
/*
练习1:计算0到100之间的奇数和偶数的和
*/public class Demo01 {public static void main(String[] args) {int a = 1;int sum1=1; //奇数while(a<99){a+=2;sum1+=a;}System.out.println(a);System.out.println(sum1);int b = 0;int sum2=0; // 偶数while(b<100){b+=2;sum2+=b;}System.out.println(b);System.out.println(sum2);System.out.println("_____________________________");int sum3=0;// 初始值;循环条件;迭代for(int i=1;i<=99;i+=2){// i首先判断是否满足条件,满足则执行语句,执行完之后再迭代sum3+=i;}System.out.println(sum3);int sum4=0;for(int i=0;i<=100;i+=2){sum4+=i;}System.out.println(sum4);System.out.println("+++++++++++++++++++++++++++++++");int oddsum = 0;int evensum = 0;for (int i = 0; i <= 100; i++) {if(i%2==0){evensum+=i;}else{oddsum+=i;}}System.out.println("偶数和为:"+evensum+'\t'+"奇数和为:"+oddsum);}}

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

注意:

1、System.out.println 输出完会自动换行  System.out.print不会换行

System.out.println() 等价于 System.out.print("\n")

2、System.out.print(i+"\t"); // 转义字符一定要用双引号

package For0411;
/*
练习2:用while或for循环输出1-100之间能被5整除的数,并且每行输出3个*/
public class Demo02 {public static void main(String[] args) {int j = 0;for (int i = 1; i <= 100; i++) {if(i%5==0){j++;if(j%3 !=0){System.out.print(i+"\t"); // 转义字符一定要用双引号}else{System.out.print(i+"\n");}}}}
}
class Demo04 {public static void main(String[] args) {for (int i = 1; i <= 100; i++) {if(i%5==0 ){if(i%15 ==0){System.out.print(i+"\n");}else{System.out.print(i+"\t");}}}}}class demo05{public static void main(String[] args) {for (int i = 1; i <= 100; i++) {if(i%5==0 && i%15 !=0){System.out.print(i+"\t");}if(i%15==0){System.out.print(i+"\n");}}}
}

练习3:打印九九乘法表

package For0411;
/*练习3:打印九九乘法表
* 嵌套for循环*/
public class Demo03 {public static void main(String[] args) {for (int i = 1; i < 10; i++) {for (int j = 1; j <= i; j++) {System.out.print(j+"x"+i+"="+(i*j)+"\t");}System.out.println();}}
}

9、增强for循环

主要用于遍历数组和集合

package For0411;
// 增强for循环
public class Demo1 {public static void main(String[] args) {// 定义一个数组int[] numbers = {1,2,3,4,5};// 打印数组中的元素for(int x:numbers){System.out.println(x);}// 等价于System.out.println("---------------");for(int i=0;i<5;i++){// 输出数组中第i位置的元素System.out.println(numbers[i]);}}
}

10、break、continue、goto

(1)break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)

package control;
// break
public class DemoBreak {public static void main(String[] args) {// 在3那里跳出循环,继续执行循环后的语句for (int i = 1; i <= 10; i++) {System.out.println(i);if(i==3){break;}}System.out.println("break done!");}
}

(2)continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。

package control;
// continue
public class DemoContinue {public static void main(String[] args) {int i=0;while(i<10){i++;// 当i==3时,结束这一次循环,后面的语句就不进行了继续执行循环的下一步if(i==3){continue;}System.out.print(i+"\t");}System.out.println();System.out.println("___________________");int j=0;while(j<10){j++;// 当j==3时,结束循环if(j==3){break;}System.out.println(j);}System.out.println("done!");}
}

(3)goto

尽管goto仍是Java的一个保留字,但并未在语言中得到正式使用

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

例:找质数

package control;
// 找出1-20中的质数
public class DemoLable {public static void main(String[] args) {outer:for (int i = 1; i <= 20; i++) {// 判断是否为质数for(int j=2;j<=i/2;j++){if(i%j==0){// 能整除,不是质数,跳过,判断下一个icontinue outer;}}System.out.print(i+" ");}}
}

11、打印三角形及Debug

package control;
// 打印三角形
public class Demo {public static void main(String[] args) {int num=5; // 行数for(int j=1;j<=num;j++){// 先打印最左边的空白for (int i = num; i >= j; i--) {System.out.print(" ");}// 再打印三角形左半边for(int i=1;i<=j;i++){System.out.print("*");}// 最后打印三角形右半边for(int i=1;i<j;i++){System.out.print("*");}System.out.println();}}
}

package control;
// 打印三角形public class Demo {public static void main(String[] args) {System.out.print("开始打印");System.out.println(":");// 重点是print即使是两句话也会自动连起来,因为他们之间没有分隔符int num=6; // 行数for(int j=1;j<=num;j++){// 先打印最左边的空白for (int i = num; i >= j; i--) {System.out.print(" ");}// 再打印三角形左半边for(int i=1;i<=2*j-1;i++){System.out.print("*");}System.out.println();}}
}

程序Debug

step1 基本语法流程控制相关推荐

  1. Java基础内容/基础语法/流程控制

    基础内容 1.如何高效的学好java 多写代码,多写笔记,多写文章 多练交流,多练思维,多练技能 多分享,多提问,多思考 最重要(坚持) 2.计算机应用领域 1)科学计算 2)数据处理 3)自动控制 ...

  2. Linux Shell 基础语法 流程控制 逻辑运算 字符串操作详细解析

    文章目录 1 shell 简单入门 1.1 shell分类 1.2 shell脚本 1.3 Shell 脚本四种启动方式 2 shell 变量 2.1 普通变量 2.1.1 定义变量 2.1.2 变量 ...

  3. java语法\流程控制\方法\数组

    Java语法 注释 标识符 关键字 (1)注释(3种) 单行注释 //line comment 多行注释 /* block comment */ 文档注释 /** JavaDoc */ ​ 写注释是一 ...

  4. 学习使用IntelliJ IDEA的第四天:Java基本语法——流程控制

    一.分支结构 1. if-else条件判断 1.1 结构 /* 分支结构中的if-else(条件判断结构)一.三种结构第一种: if(条件表达式){执行表达式 }第二种:二选一 if(条件表达式){执 ...

  5. Java基础笔记(入门,语法基础,流程控制,数组)

    Java语言入门 发展历程 三大技术体系 JavaSE 标准版 JavaEE 企业版 JavaME 嵌入式版 Java语言特点 简单性 健壮性 面向对象 分布式 多线程 动态性 可移植性(跨平台) J ...

  6. JAVA语法基础之流程控制

    在进行程序设计的时候,我们会经常进行逻辑判断,根据不同的结果做不同的事,或者重复做某件事,我们对类似这样的工作称为流程控制.在Java中,流程控制分为两大类:选择和循环.下面就依次来介绍这两类. 一. ...

  7. PLSQL基础语法二-流程控制,循环

    2019独角兽企业重金招聘Python工程师标准>>> --流程控制 --分支语句 --练习1:字符串 declarestr varchar2(18):='b'; beginif(s ...

  8. mysql 普通sql流程控制,【mysql的编程专题①】流程控制与其他语法

    流程控制与内置函数,一般用在select的field字段上,或者用在函数,存储过程,触发器中; 如果用在select上就会随着query出来的row来隐式迭代; 注释与语句结束符 语句结束符 默认有两 ...

  9. 编写递归下降语法分析器_Python3知识点流程控制、迭代器、生成器快速入门

    流程控制 if 控制 if 表达式1: 语句if 表达式2: 语句elif 表达式3: 语句else: 语句elif 表达式4: 语句else: 语句 1.每个条件后面要使用冒号 :,表示接下来是满足 ...

  10. Shell程序设计 | 基本语法 :变量、I/O、算术运算、条件判断、流程控制、函数

    文章目录 变量 环境变量 位置变量 特殊变量 自定义变量 数组 I/O printf / echo read 算术运算 let expr 条件判断 test 常用判断条件 流程控制 if case f ...

最新文章

  1. js 判断js,css是否引入,确保不重复引入
  2. R语言ggplot2可视化:ggplot2中使用element_text函数设置轴标签文本粗体字体(bold text,使x轴和Y轴的标签文本都使用粗体字体)、注意是轴标签而非轴标题
  3. 实用技巧:Excel中的常见问题以及解决方法
  4. OpenCV: OpenCV人脸检测框可信度排序
  5. codeforce gym 100548H The Problem to Make You Happy
  6. 详解:设计模式之-策略设计模式
  7. ORACLE EBS R12 - 寄售功能知多少
  8. ThinkPHP3.2.3执行页面循环案例代码(部分)
  9. 【Hadoop代码笔记】Hadoop作业提交之客户端作业提交
  10. Solidity API
  11. sitemesh学习
  12. 各国市场分析(越南,智利)
  13. 数据结构手把手教学——单向循环链表
  14. 为什么那么多城市房价开始跌了,还是有人相信房价会一直涨?
  15. Ionic for Angular 环境搭建
  16. Dreamweaver——滚动字幕制作方法总结
  17. 提升网页加载速度 | google网站速度测试
  18. python excel超链接_在Python中保留Pandas中的超链接 – Excel到数据帧
  19. prettier和beautify哪个好用
  20. linux rtc与时钟

热门文章

  1. Python数据分析实战(1)数据分析概述
  2. JNCIS翻译文档之------接口2
  3. 白话Istio—流量管理四大概念
  4. Qt编写地图综合应用12-路线查询
  5. HTML a 标签详解
  6. 虚拟机NAT模式无法上网
  7. java 中rest,Java中的REST调用
  8. 16部趣味数学纪录片
  9. 2018/9/27---高质量SCI论文撰写方法以及ESI引用经验交流 韩光洁教授(大连理工)
  10. 步进电机 高速光耦_高速光耦有哪些_高速光耦如何选型 - 全文