学习来源: 【狂神说Java】Java零基础学习视频通俗易懂_哔哩哔哩_bilibili

Java流程控制

用户交互Scanner

获取用户的输入

  • 基本语法
Scanner s = new Scanner(System.in);
  • 通过Scanner类的next()与next()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据
package com.xxx.scanner;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);//Alt+Enter自动补全
System.out.println("使用next方式接收:");
//判断用户有没有输入字符串
if (scanner.hasNext()){
//使用next的方式接收用户的输入
String str = scanner.next();
System.out.println("输入的内容为:"+str);
}
//凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉
scanner.close();
}
}
package com.xxx.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 str = scanner.nextLine();
System.out.println("输出的内容是:"+str);
}
scanner.close();
}
}

Scanner对象

next():

  1. 一定要读取到有效字符后才可以结束输入
  2. 对有效字符之前遇到的空白,next()方法会自动将其去掉
  3. 只有输入有效字符后将其后面输入的空白作为分隔符或者结束符
  4. next()不能得到带有空格的字符串

nextLine():

  1. 以Enter为结束符 也就是说nextLine()方法返回的是输入回车之前的所有字符
  2. 可以获得空白
package com.xxx.scanner;
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请数据数据——使用nextline方式接收:");
String str = scanner.nextLine();//这一句用来接收数据
System.out.println("输出的内容是:"+str);
scanner.close();
}
}
package com.xxx.scanner;
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//从键盘接收数据
int i = 0;
float f = 0.0f;
System.out.println("请输入整数:");
if (scanner.hasNextInt()){
i = scanner.nextInt();
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();
}
}
package com.xxx.scanner;
import java.util.Scanner;
public class Demo05 {
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+1
m = m + 1;//m++
sum = sum + x;
System.out.println("你输入了第"+m+"个数据,然后当前结果sum="+sum+"请输入下一个数据:");
}
System.out.println(m+"个数的和为"+sum);
System.out.println(m+"个数的平均值是"+(sum / m));
scanner.close();
}
}

顺序结构

程序默认的结构,自上而下的执行

他是任何一个算法都离不开的一种基本算法结构

选择结构

  • if
  • switch
  1. if (){

}

  1. if (){

}else{

}

  1. if (){

}else if ({

}

if的嵌套

  1. switch (){

case ():

break;

}

case穿透

循环结构

  • while 先判断后执行
  • do…while 先执行后判断,即使不满足循环,也至少执行一次
  • for循环
  1. while(){

}

  1. for (初始值;布尔表达式;更新){

}

最先执行初始化步骤,可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。

快捷书写:

fori

100.for

死循环:for( ; ; )

package com.xxx.circle;

/*
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
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*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
*/
public class Demo02_99 {
public static void main(String[] args) {
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();
}
}
}
  1. 增强型for循环 for-each

for(声明语句:表达式){

//代码句子

}

package com.xxx.circle;

public class Demo03 {
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]);
}
System.out.println("===================");
//增强for循环,用来循环数组和集合
for(int x:numbers){
System.out.println(x);
}
}
}

4.break&continue

  • break 用于强制退出循环,只是退出循环,不执行循环中剩余的语句,但不会终止程序
  • continue 终止当次循环,即跳过循环中尚未执行的语句,接着进行下一次是否执行循环的判定
  • goto带标签,java没有goto,但是可以通过标签的形式寻找goto的影子
    • “标签”是指后面跟着一个冒号的标识符
    • 对于java来说唯一用到标签的地方就是循环语句之前。而在循环之前设置的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,他们就会中断到存在标签的地方
  • return:结束方法的运行

练习

package com.xxx.circle;

public class Test01 {
public static void main(String[] args) {
//打印三角形 for (int i = 1; i <= 5; i++) {
for (int j = 5; j >= i; j--) {
System.out.print(" ");
}
for (int k = 1; k <= i; k++) {
System.out.print("*");
}
for (int m = 1; m < i; m++) {
System.out.print("*");
}
System.out.println(); }
}
}

最新文章

  1. [LeetCode] Delete Node in a Linked List 删除链表的节点
  2. RESTful API测试工具
  3. Keystone 命令汇总
  4. KBMMW 4.93.10 发布
  5. 疯狂java学习笔记之面向对象(二) - 成员变量与局部变量
  6. http://www.cnblogs.com/0201zcr/p/4987561.html
  7. Visual Studio中设置默认VC++路径
  8. Bring up a website by wordpress
  9. tomcat绑定域名
  10. Maven--403权限问题解决方式(求解决)
  11. 《JavaScript高级程序设计》读书笔记 ---基本概念小结
  12. hust1010 kmp
  13. gulp使用2-gulp-less及watch和错误提示
  14. Tips on GORM, Avoid Error about &quot;duplicate column name: id&quot;
  15. Hive思维导图之Hive优化
  16. Vue.js 基本功能了解一下~
  17. (1)HomeAssistant 安装
  18. octave基本指令3
  19. UVa 10561 Treblecross (SG函数)
  20. 如何在idea中设置Tomcat虚拟路径

热门文章

  1. mvn引用本地包
  2. python学习第一周总结
  3. JAVA虚拟机03-常量池项中字面量和符号引用
  4. Cesium计算范围(十三)
  5. python 合并目标文件夹中多个txt文件到指定文件中
  6. 基线MRI与CRP是依那西普对nr-axSpA的疗效预测因素
  7. NameError: name &#39;_name_&#39; is not defined
  8. springboot加入cloud,并注册到nacos
  9. spring boot 配置多套数据源
  10. mysql查询最近2天数据