Java基础回顾_第二部分

Java流程控制

Scanner对象(扫描器,捕获输入)

import java.util.Scanner;

public class Demo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数据:");
System.out.println("使用nextLine方式接收:");//以回车和回车为结束符
if (scanner.hasNextLine()){
//使用nextLine方式接收
String str2 = scanner.nextLine();
System.out.println("输出的内容为:"+str2);
} System.out.println("使用next方式接收:");//以空格为结束符
//判断是否还有输入
if (scanner.hasNext()){
//使用next方式接收
String str = scanner.next();
System.out.println("输出的内容为:"+str);
} scanner.close();
}
}

个人总结:

Scanner对象有两个方法next()nextLine()

  1. next()输入是,只要输入了有效字符之后,输入空格就会使后续输入的字符失效,例如输入hello空格world,输出结果就只有hello;且如果一开始就输入空格,next()方法会自动无视,不影响后续输入有效字符。
  2. nextLine()输入是,不用管什么时候输入的空格或字符都有效,输入多少显示多少。只会在按回车键的时候结束输入。

自用练习题:

  • 输入多个数字,求它们的总数与平均数,每输入一个数字就用回车确认一遍,当输入数据不是数字时,结束并输出结果。
import java.util.Scanner;

public class Demo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); double sum = 0;//作为求和变的变量
int m = 0;//作为记录输入数字个数的变量 System.out.println("请输入任意个数字,并输入一个非数字的字符来结束输入:");
//while循环语句
while (scanner.hasNextInt()){
double i = scanner.nextInt();//用来记录每次输入的数字
m++;
sum+=i;
}
System.out.println("输入了"+ m + "个数字");
System.out.println("它们的总数为:"+ sum);
System.out.println("它们的平均数为:"+ sum / m); scanner.close();
}
}

顺序结构

  • 顺序结构是Java最简单的算法结构。即代码从上往下,一句一句执行。

  • 选择结构:if语句、switch多选择结构

if语句

  • if单选 结构 只有iif和执行语句

  • if双选 结构 有if和else 两条执行语句

  • if多选 结构 有一个if和多个else if 多条执行语句

  • 嵌套 的if结构

import java.util.Scanner;

public class Demo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入任意内容:"); if (scanner.hasNextInt()){
System.out.println("你输入的是整数~");
}
else{
System.out.println("你输入的不是整数");
} String s = scanner.nextLine();
if (s.equals("abc")){
System.out.println("你猜中了!");
}
else {
System.out.println("你猜错了!");
}
scanner.close();
}
}

switch多选择结构(匹配机制)

import java.util.Scanner;

public class Demo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入任意内容:");
String str = scanner.nextLine();
switch (str){
case "A":
System.out.println("A等");
break;
case "B":
System.out.println("B等");
break;
case "C":
System.out.println("C等");
break;
case "D":
System.out.println("D等");
break;
case "E":
System.out.println("E等");
break;
default:
System.out.println("补考");
}
}
}


循环结构

  • while循环---------------------->先判断布尔表达式,后执行代码
  • do...while循环---------------->先执行代码,后判断布尔表达式(执行代码至少执行一次)
  • for循环
  • 增强for循环

while循环

格式:

while(布尔表达式){

//执行的代码;

}

public class Demo01 {
public static void main(String[] args) {
int i = 0;
while (i<10){
i++;
System.out.println(i);
}
}
}

do...while循环

格式:

do{

//执行的代码;

}while(布尔表达式);

public class Demo01 {
public static void main(String[] args) {
int i = 0;
do {
i++;
System.out.println(i);
}
while (i<10);
}
}

for循环

格式:

for(初始化值 i ;布尔表达式;i 值更新){

//执行代码;

}

public class Demo01 {
public static void main(String[] args) { int i = 1;
for (i = 1;i<10;i++){
System.out.println(i);
}
System.out.println(i);//10----->布尔表达式为假的时候跳过执行代码,还会执行一次 i++;所以最后i变成了10!
}
}

练习题:

  1. 分别计算1到100之间奇数的和、偶数的和。
  2. 分别用while和for循环,输出1到1000之间能被5整除的数,并且每行输出三个数。
  3. 打印九九乘法表

  1. 分别计算1到100之间奇数的和、偶数的和。
  public class Demo01 {
public static void main(String[] args) { int i = 1;
int sum1 = 0;//奇数和
int sum2 = 0;//偶数和
for (i = 1;i<=100;i++){
if (i%2==0){
sum1 += i;
}else{
sum2 += i;
}
}
System.out.println("最后i的值为:"+i);
System.out.println("1到100,奇数和为:"+sum1);
System.out.println("1到100,偶数和为:"+sum2);
}
}

  1. 分别用while和for循环,输出1到1000之间能被5整除的数,并且每行输出三个数。

    while方式
public class Demo01 {
public static void main(String[] args) { int i = 1;
int j = 0;
while (i<=1000){
if(i%5 == 0){
System.out.print(i+"\t");
j++;
if (j%3 == 0){
System.out.print("\n");
}
}
i++; }
}
}

for方式

public class Demo01 {
public static void main(String[] args) { int j = 0;
for(int i = 1;i<=1000;i++){
if(i%5 == 0){
System.out.print(i+"\t");
j++;
if (j%3 == 0){
System.out.print("\n");
}
} }
}
}

  1. 打印九九乘法表

个人思路:先打印出所有相乘的式子,然后观察99乘法表规律进行如下操作。

public class Demo01 {
public static void main(String[] args) { for(int i = 1;i<=9;i++){
for (int j = 1;j<=9;j++){
//去掉乘号左边数字大于右边数字的式子,用空格代替显示-------->第三步
if (j>i){
System.out.print("\t");
}else {
System.out.print(j+"*"+i+"="+i*j+"\t");//----->第一步打印出所有式子
}
//j是乘号右边的数,每次乘到9的时候换行------->第二步
if(j==9){
System.out.print("\n");
}
}
}
}
}

改进后的思路:

public class Demo01 {
public static void main(String[] args) {
for(int i=1;i<=9;i++){
//用j<=i控制每一行输出的式子个数(妙啊!!!!!!!!!)
//通过循环累加,当j>i的时候跳出循环,从而不会打印 乘号左边的数字大于乘号右边的数字 的等式,妙啊!
for (int j=1;j<=i;j++) {
System.out.print(j + "*" + i + "=" + i * j + "\t");
}
//j>i时,跳出上面的for循环不打印 乘号左边的数字大于乘号右边的数字 的等式,直接执行下面的换行代码,妙啊!
//这样又去掉了想要去掉的 重复等式(类似1*2=2和2*1=1这样的重复等式) ,又达到了换行的效果,绝了!
System.out.print("\n");
}
}
}

增强for循环

格式:

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

​ //执行代码;

}

声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。

表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

经常用于遍历数组

public class Demo01 {
public static void main(String[] args) {
//定义一个数组取名为List
int[] List = {1,2,3,4,5};
for (int i : List) {
System.out.println(i);
}
}
}


break和continue

break用与强制退出循环体,即终止循环,跳出循环体;

continue用于终止循环体的某一次循环,即跳过某一次循环操作循环体继续工作到直到跳出循环体。

随笔:

​ 什么是质数

质数是指在大于1的所有自然数中,那些只能被1和本身整除的整数。

​ 一个数如果不能以它本身的一半以内的数乘以另一个数得到,那么它就是一个质数!


流程控制练习

  1. 打印三角形

    public class Demo01 {
    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 j = 1; j <=i; j++) {
    System.out.print("*");
    }
    for (int j = 1; j <i; j++) {
    System.out.print("*");
    } System.out.print("\n");
    }
    }
    }


Java基础回顾_第二部分_Java流程控制的更多相关文章

  1. Java基础回顾_第一部分

    Java基础回顾 基本数据类型 数值类型 什么是字节? 位(bit):是计算机中数据的最小单位 字节(byte):是计算机中数据处理的基本单位,习惯上用大写字母B来表示 1 B = 8 bit 字符: ...

  2. 四、Android学习第四天——JAVA基础回顾(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 四.Android学习第四天——JAVA基础回顾 这才学习Android的 ...

  3. 【Spring学习】【Java基础回顾-数据类型】

    Java基础回顾过程中,之前对于Java相关基础知识都是从这个人的博客看一些,那边的内容看一下,觉得不够系统化,决定用xmind脑图的形式,将Java基础知识回顾的作为一个系列,当前正在做的会包含: ...

  4. Java基础(Scanner、Random、流程控制语句)

    第3天 Java基础语法 今日内容介绍 u 引用数据数据类型(Scanner.Random) u 流程控制语句(if.for.while.dowhile.break.continue) 第1章 引用数 ...

  5. 1、java基础回顾与加强

    一.    基础回顾 1   集合 1.1  集合的类型与各自的特性 ---|Collection: 单列集合 ---|List: 有存储顺序, 可重复 ---|ArrayList:    数组实现, ...

  6. Java学习之旅基础知识篇:数据类型及流程控制

    经过开篇对Java运行机制及相关环境搭建,本篇主要讨论Java程序开发的基础知识点,我简单的梳理一下.在讲解数据类型之前,我顺便提及一下Java注释:单行注释.多行注释以及文档注释,这里重点强调文档注 ...

  7. JAVA:变量,数据类型,运算符,流程控制(简介)<1>

    一.安装和配置jdk 1.jdk是什么? (1).jdk全称是Java Development Kit, Java开发工具包; (2).jdk是sun公司开发的; (3).jdk主要包括:jre(Ja ...

  8. JavaScript 基础(数据类型、函数、流程控制、对象)

    一.JavaScript概述 1.1 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名Script ...

  9. java面向对象编程—— 第三章 程序流程控制

    3.1流程控制 三种基本技术可以改变程序的控制流程: ①   调用方法:调用方法将导致控制流程离开当前方法,转移到被调用的方法: ②   选择:java中有两种做出选择的机制:if/else语句和sw ...

随机推荐

  1. 2021 NGK生态所体验好、交易快 引人注目!

    据悉,NGK计划于2021年2月15日正式上线自己的生态所(时间待定),目的在于满足NGK生态建设者对于NGK几大币种的交易等需求,如NGK.BGV.SPC.USDN.VAST等.只要上NGK生态所, ...

  2. JavaScript高级:JavaScript面向对象,JavaScript内置对象,JavaScript BOM,JavaScript封装

    知识点梳理 课堂讲义 1.JavaScript面向对象 1.1.面向对象介绍 在 Java 中我们学习过面向对象,核心思想是万物皆对象. 在 JavaScript 中同样也有面向对象.思想类似. 1. ...

  3. 微信小程序(一)-工具创建和结构配置说明 Stable Build

    按装前特别说明: windows最好下载32位的,不然用到用到后面就出现"网络连接失败",然后就登录不上去了,打不开编辑器了! 问题 : 微信开发者工具网络连接失败, " ...

  4. 【Notes_3】现代图形学入门——基础变换、MVP变换模型

    基础变换(二维) 三维变化与二维变换矩阵类似 齐次坐标下的基础变换 Scale: \[S(s_x,s_y) =\begin{pmatrix} s_x &0 &0\\ 0 & s ...

  5. token、cookie和session区别以及django中的cookie,csrf

    参考:https://my.oschina.net/xianggao/blog/395675?fromerr=GC9KVenE [前言]登录时需要post的表单信息. 先跳过具体案例,讲解基础知识: ...

  6. LeetCode-层数最深叶子结点的和

    层数最深叶子结点的和 LeetCode-1302 这里可以采用上一题中求解二叉树的深度的方法. 因为需要记录最深结点的值的和,所以这里可以边求和,如果遇到不符合最深结点时再将和sum=0. /** * ...

  7. HDOJ-6645(简单题+贪心+树)

    Stay Real HDOJ-6645 由小根堆的性质可以知道,当前最大的值就在叶节点上面,所以只需要排序后依次取就可以了. #include<iostream> #include< ...

  8. JVM-对象及对象内存布局

    目录 前言 类与对象 对象类二分模型 对象 对象内存布局 JOL工具 对象头 Mark Word 类型句柄 对象头与锁膨胀 无锁 偏向锁 轻量级锁 重量级锁 重量级锁降级 实例数据 填充 对象生命周期 ...

  9. java 基础语法学习

    kuangstudy 注释 单行注释 多行注释 文档注释 public class HelloWorld { public static void main(String[] args) { //单行 ...

  10. 记录PHP post提交表单导入mysql中文乱码的问题

    记录记录PHP post提交表单导入mysql中文乱码的问题 关于乱码,这是个糟糕的问题!涉及到很多地方 解决思路:程序所涉及的环境字符集不一致导致 mysql出现乱码一般是mysql数据库内部的字符 ...