Java基础回顾_第二部分_Java流程控制
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();
- next()输入是,只要输入了有效字符之后,输入空格就会使后续输入的字符失效,例如输入hello空格world,输出结果就只有hello;且如果一开始就输入空格,next()方法会自动无视,不影响后续输入有效字符。
- 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到100之间奇数的和、偶数的和。
- 分别用while和for循环,输出1到1000之间能被5整除的数,并且每行输出三个数。
- 打印九九乘法表
- 分别计算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);
}
}

- 分别用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");
}
}
}
}
}

- 打印九九乘法表
个人思路:先打印出所有相乘的式子,然后观察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和本身整除的整数。
一个数如果不能以它本身的一半以内的数乘以另一个数得到,那么它就是一个质数!
流程控制练习
打印三角形
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流程控制的更多相关文章
- Java基础回顾_第一部分
Java基础回顾 基本数据类型 数值类型 什么是字节? 位(bit):是计算机中数据的最小单位 字节(byte):是计算机中数据处理的基本单位,习惯上用大写字母B来表示 1 B = 8 bit 字符: ...
- 四、Android学习第四天——JAVA基础回顾(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 四.Android学习第四天——JAVA基础回顾 这才学习Android的 ...
- 【Spring学习】【Java基础回顾-数据类型】
Java基础回顾过程中,之前对于Java相关基础知识都是从这个人的博客看一些,那边的内容看一下,觉得不够系统化,决定用xmind脑图的形式,将Java基础知识回顾的作为一个系列,当前正在做的会包含: ...
- Java基础(Scanner、Random、流程控制语句)
第3天 Java基础语法 今日内容介绍 u 引用数据数据类型(Scanner.Random) u 流程控制语句(if.for.while.dowhile.break.continue) 第1章 引用数 ...
- 1、java基础回顾与加强
一. 基础回顾 1 集合 1.1 集合的类型与各自的特性 ---|Collection: 单列集合 ---|List: 有存储顺序, 可重复 ---|ArrayList: 数组实现, ...
- Java学习之旅基础知识篇:数据类型及流程控制
经过开篇对Java运行机制及相关环境搭建,本篇主要讨论Java程序开发的基础知识点,我简单的梳理一下.在讲解数据类型之前,我顺便提及一下Java注释:单行注释.多行注释以及文档注释,这里重点强调文档注 ...
- JAVA:变量,数据类型,运算符,流程控制(简介)<1>
一.安装和配置jdk 1.jdk是什么? (1).jdk全称是Java Development Kit, Java开发工具包; (2).jdk是sun公司开发的; (3).jdk主要包括:jre(Ja ...
- JavaScript 基础(数据类型、函数、流程控制、对象)
一.JavaScript概述 1.1 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名Script ...
- java面向对象编程—— 第三章 程序流程控制
3.1流程控制 三种基本技术可以改变程序的控制流程: ① 调用方法:调用方法将导致控制流程离开当前方法,转移到被调用的方法: ② 选择:java中有两种做出选择的机制:if/else语句和sw ...
随机推荐
- window.URL.createObjectURL
window.URL.createObjectURL https://html5.xgqfrms.xyz/Canvas/safety-canvas.html var video = document. ...
- Axios & POST & application/x-www-form-urlencoded
Axios & POST & application/x-www-form-urlencoded application/x-www-form-urlencoded https://g ...
- 「NGK每日快讯」2021.1.4日NGK第62期官方快讯!
- 一层逻辑的网页scrapy爬虫
1 import scrapy 2 import re 3 from fake_useragent import UserAgent 4 5 6 class DoubanSpider(scrapy.S ...
- 为什么Linux需要虚拟内存
本文转载自为什么 Linux 需要虚拟内存 导语 操作系统中的 CPU 和主内存(Main memory)都是稀缺资源,所有运行在当前操作系统的进程会共享系统中的 CPU 和内存资源,操作系统会使用 ...
- 一条sql语句的执行过程
一条select语句执行流程 第一步:连接器 连接器负责跟客户端建立连接.获取权限.维持和管理连接.如果用户名密码验证通过后,连接器会到权限表里面查出你拥有的权限.之后该连接的权限验证都依赖于刚查出来 ...
- Python序列之列表(一)
在Python中,列表是一种常用的序列,接下来我来讲一下关于Python中列表的知识. 列表的创建 Python中有多种创建列表的方式 1.使用赋值运算符直接赋值创建列表 在创建列表时,我们直接使用赋 ...
- WPF 解决内置谷歌浏览器(Cef.ChromiumWebBrowser)在触摸屏无法进行滚动的问题
1.问题描述: 最近在WPF的项目中,需要在控件中嵌套可以浏览特定网页的内容,所以使用了 Cef.ChromiumWebBrowser来解决问题.在执行项目的过程中,主要碰到的问题有: 1.1 当把项 ...
- vue之provide和inject跨组件传递属性值失败(父组件向子组件传值的两种方式)
简单介绍:当一个子组件需要用到父组件的父组件的某些参数.那么这个时候为了避免组件重复传参,使用vue的依赖注入是个不错的方法,直接在最外层组件设置一个provide,内部不管多少嵌套都可以直接取到最外 ...
- JS驼峰与下划线互转
1.下划线转驼峰 function underlineToHump(s){ var a = s.split("_"); var result = a[0]; for(var i=1 ...