控制流程简单总结
1.用户交互Scanner
- break & continue.md 跳出循环 顺序 等等
- new 新生的意思
- in 输入的意思
- if () 如果的意思
- close(); 关掉的意思
- IO流 输入输出意思
- next()获取输入字符串
- nextLine() 获取输入字符串
- hasNext() 还是否还有下一个
- hasNextLine() 还是否还有下一行
package com.garfield.copy;
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); //创建扫描器对象,用于接收
System.out.println(" next 或者是nextLine 请输入内容:"); //输出
if (scanner.hasNextLine()){ //判断 输入是否还有下一行
String str = scanner.nextLine(); //接收用户的输入
System.out.println(" next或者nextLine 输出的内容为:"+str); //输出
}
scanner.close(); //结束
}
}
进阶Scanner
package com.garfield.scanner;
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//从键盘接收数据
int i = 10;
float f = 0.0f;
System.out.println("请输入数据:");
//如果
if (scanner.hasNextInt()){ //判断是否还有整数Int
i = scanner.nextInt(); // 接收是否下一个整数Int
System.out.println("整数数据:"+ i);
}else { //否则
System.out.println("输入的不是整数数据:!");
}
System.out.println("请输入小数:");
if (scanner.hasNextFloat()){
f = scanner.nextFloat();
System.out.println("小数数据:"+ f);
}else { //否则
System.out.println("输入的不是小数数据:!");
}
scanner.close();
}
}
顺序结构
java的基本结构就是顺序 结构,除非特别指明,否则就按照顺序一句一句执行。
顺序结构是最简单的算法结构。
顺序结构是最简单的程序结构,也是最常用的程序结构,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。
if选择结构
if单选择结构
- equals
if (s.equals("hello")){} // equals 判断字符串是否相等
package com.garfield.struct;
import java.util.Scanner;
public class IfDemo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个内容:");
String s = scanner.nextLine(); //接收,是否还有下一行
// equals 判断字符串是否相等
if (s.equals("hello")){ //如果这个字符串等于 hello
System.out.println(s); // 如果这个字符串等于hello就输出,就是hello
}
System.out.println("错的"); // 如果这个字符串不等于hello就输出这一句话错的
scanner.close();
}
}
if双选择结构
package com.garfield.struct;
import java.util.Scanner;
public class IfDemo02 {
public static void main(String[] args) {
//分数大于60分就是及格,小于60分就是不及格。
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = scanner.nextInt();
if (score>60){
System.out.println("及格");
}else {
System.out.println("不及格");
}
scanner.close();
if多选择结构
package com.garfield.struct;
import java.util.Scanner;
public class IfDemo03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); //扫描接收
System.out.println("请输入成绩:"); //接收
int scotr = scanner.nextInt(); //判断是否还有下一行
33
if (scotr==100){ //如果等于100分
System.out.println("满分"); //如果等于100分这里就输出等于满分
}else if (scotr<100 && scotr>=90){ // 小于100大于90
System.out.println("A级"); //如果分数在100到90之间这里就输出A级
}else if (scotr<90 && scotr>=80){ //小于90 大于80
System.out.println("B级"); //如果分数在90到80之间这里就输出A级
}else if (scotr<80 && scotr>=70){ //小于80 大于70
System.out.println("C级"); //如果分数在80到70之间这里就输出A级
}else if (scotr<70 && scotr>=60){ //小于70 大于60
System.out.println("D级"); //如果分数在70到60之间这里就输出A级
}else if (scotr<60 && scotr>=0){ //小于60 大于0
System.out.println("不及格"); //如果分数在60到0之间这里就输出A级
}else {
System.out.println("请输入100到0之间的成绩");
scanner.close(); //结束
}
}
选择结构嵌套先了解一下就行了
选择结构可以嵌套,使用时一定要注意控制好不同级别代码块的缩进量,因为缩进量决定了
代码的从属关系。语法格式如下:
if 表达式 1:
语句块 1
if 表达式 2:
语句块 2
else:
语句块 3
else:
if 表达式 4:
语句块 4
Switch多选择结构
- 多选择结构还有一个实现方式就是 awitch case 语句。
- switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
- grade 分数
- char 类
- break //可选
- scae 判断
- default 里面没有的时候就输出宏这一句 相当于 if 的最后一句 else {} System.out.println(“请输入正确的词”);
char grade = 'A'; // 类 分数 等于 c // 输入A就输出优秀 B就输出良好
switch(判断) (grade){ // 判断 分数 ( 相当于if()那个 )
case 'A': // 'A'
System.out.println("优秀"); // 是A就输出优秀
break; //可选
case 'B':
System.out.println("良好"); // 是B就输出良好
break; //可选
switch(expression){
case value:
//语句
break; //可选
case value:
//语句
break; //可选
// 你可以有任意数量的case语句
default: // 可选
// 语句
}
-
switch 语句中的变量类型可以是:
扫描二维码关注公众号,回复: 9033777 查看本文章 -
byte. short. int. 或者 char.
-
从 java SE 7 开始
-
switch 支持字符串 String 类型了。
-
同时 scae 标签必须为字符串常量或字面量。
//字符
// char nume = 'A';
// 字符串,Srting不是关键字,他是一个类
// String namea = "加菲猫";
package com.garfield.struct;
public class SwitchDemo01 {
public static void main(String[] args) {
// char穿透 grade分数
char grade = 'C';
// switch 意思是匹配每一个值 他下一行要输入 break;不然他后面的都会输出
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; //可选
default:
System.out.println("请输入正确");
}
}
}
循环结构
顺序结构就只能执行一次,所以不行。这就用到了我们的循环结构。
(jdk)java5 中引入了一种主要用于数组的增强型 for循环
while 循环
// while是基本的循环,它的结构为:
while(布尔表达式){
//循环内容
}
//
- 只要布尔表达式 true, 循环应付一直执行下去。
- 我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。
- 少部分情况需要一直执行,比如说服务器的请求响应监听等。
- 循环条件一直为true应付造成无限循环【死循环】,我们正常的业务编程中应该尽量避免死循环,会影响性能或者造成程序卡死崩溃
- 思考:计算机1+2+3+…+100=?
- while () 循环
package com.garfield.struct;
public class WhileDemo01 {
public static void main(String[] args) {
// 输出 1~100 ?
// true 正确。
//false 错的。
int i = 0; //先定义 i 为 0
//// true 正确应付一直循环。
while (i<100){ // 循环 i小于100 ,只要他小于100就不停不停的循环。 (false 错的。i大于100就会停止循环)
i++; // i + 1
System.out.println(i); //输出这个 i 他这里会输出 01到100
}
}
}
do…while 循环
-
do…while () 循环
-
对于while语句而且,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件也至少执行一次。所以我们要用到do…while
-
do…while循环和while循环相似,不同的是,do…while循环至少会执行一次。
// while 循环
while(布尔表达式){
//循环内容
}
// do..while 循环
do{
//代码语句
}while(布尔表达式):
While和do…While的区别:
-
while行判断后执行。dowhile是先执行后判断!
-
Do…while总是保证循环体会被人至少执行一次!这是他们的主要差别。
-
do-while循环与while循环的不同在于:它先执行循环体中的语句,然后再判断条件是否为真。如果为真则继续循环,如果为假,则终止循环。因此,do-while循环至少要执行一次循环语句。同样当有许多语句参加循环时,要用“{”和“}”把它们括起来。 do-while循环的一般语法是: do{ 语句; }while(条件) 注意:在do-while语句的表达式后面必须加分号。
for 循环
- 虽然所有循环都可以用while 或者 do…while 表示,但java提供了另外一种语句——for循环,使一些循环结构变得更加简单。
- for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构。
- for循环执行的次数是在执行前就确定的,语法格式如下:
for(初始化; 布尔表达式; 更新){
代码语句
}
// for循环他有一个快捷键 比如是拿 100 来用。
// 100加一个.再加一个for 可生成如下
for (int i = 0; i < 100; i++) {
}
// 死循环
for (;;) {
}
package com.garfield.struct;
public class ForDemo01 {
public static void main(String[] args) {
int a = 1; //初始化条件
// while循环
while (a<=100){ // 条件判断
System.out.println(a); // 循环体
a+=2; // 迭代
}
System.out.println("while循环结束!");
// for循环
// 初始化; 条件判断 ; 迭代
for (int i =1;i<=100;i++){
System.out.println(i);
}
System.out.println("for循环结束!");
}
}
增强for循环
package com.garfield.struct;
public class ForDemo05 {
public static void main(String[] args) {
int[] numbers = {10,20,30,40,50}; //定义了一个数组
for (int i = 0; i<5;i++){ //输出五次
System.out.println(numbers[i]); // numbers 数组
/* (numbers[i])就是取出每一个数字 这个 i 从0到5 相当于numbers0到numbers5
就是把{10,20,30,40,50}里面的数取出来,最后输出宏了。 */
}
System.out.println("==========");
// 遍历数组的元素 增强for循环 就是简化for循环
for (int x :numbers){ // 他这个numbers上面{10,20,30,40,50}全部每一个值直接给了 x 核心跟上面是一样的
System.out.println(x);
}
}
}
- 声明新的局部变量,该变量的类型必须和数组处理器元素的类型匹配。其作用域限定推理在循环语句块,其值与此时数组元素相等
- 表达式:表达式是要试问的数组处理器名,或者是返回值为数组处理的方法
打印九九乘法表
- 我们打印第一列,
- 我们把固定的1再一个循环包起来
- 去掉重复项。i< = j i小于等于j
- 调整样式
基本思维
- 将大问题是拆分成若干个小问题
- 由易到难,个个击破
package com.garfield.struct;
public class ForDemo04 {
public static void main(String[] args) {
// 打印九九乘法表。
for (int j = 1; j <= 9; j++) {
for (int i = 0; i <= j; i++) {
System.out.print(j+"*"+i+"="+(j*i) + "\t");
}
System.out.println();
}
}
}
//输出
1*0=0 1*1=1
2*0=0 2*1=2 2*2=4
3*0=0 3*1=3 3*2=6 3*3=9
4*0=0 4*1=4 4*2=8 4*3=12 4*4=16
5*0=0 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*0=0 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*0=0 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*0=0 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*0=0 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
break && continue
break 在 Switch多选择结构 就可以学到。
continue
continue的用法:
continue的用法1:continue的基本意思是“继续”,指动作或状态的继续或持续不中断。可表示一件事一直在做,中间没有停歇; 也可以表示中间有一个中断,又接着做下去。
continue的用法2:continue可用作不及物动词,也可用作及物动词。用作及物动词时可接名词、动名词、动词不定式或that从句作宾语,也可以接as短语充当补足语的复合宾语。continue还可引出直接引语。
continue的用法3:continue还可用作系动词,接(to be ) adj. 或as n. 作表语, to be常可以省略。