1、引用数据类型

Scanner类

Scanner类属于引用数据类型;

格式: 数据类型 变量名 = new 数据类型();

/*
引用数据类型,介绍一个类 Scanner,这是应存在的类
定义引用数据类型变量,和基本类型变量有区别 格式:
数据类型 变量名 = new 数据类型();
举例:
Scanner sc = new Scanner();
创建出Scanner类的变量; 每个引用类型都有自己的功能,使用功能方式:
变量.功能名字() Scanner类,作用是在命令行中接收输入
使用Scanner类步骤:
1.导入包,指明类所在的文件夹,关键字import;
2.公式,创建出Scanner类型变量;
3.变量,使用Scanner类中的功能,完成键盘输入;
*/
import java.util.Scanner;
public class Scanner_Reference{
public static void main(String[] args){ // 创建出Scanner类变量
Scanner sc = new Scanner(System.in); // 功能1:nextInt()接收键盘输入,保证输入的是整数;
// 功能接收的数据就是整数,功能运行后的结果就是整数类型
int i = sc.nextInt();
System.out.println(i); // 功能2:next()接收键盘输入的字符串
String s = sc.next();
System.out.println(s);
}
}

Random类

/*
java中的引用类型 Random类作用是产生随机数
步骤:
1.导入包,Random类,也在java.util文件夹中
2.公式:创建出Random类型的变量
3.变量:调用Random类中的功能,产生随机数; Random类中,nextInt()产生一个随机数,结果是int类型;
nextInt(写一个整数),产生的随机数在0 —— 指定的整数之间的随机数;
例如,nextInt(100),则范围在0-99 伪随机数:这种随机数是根据写好的算法生成的一个伪随机数;
*/
import java.util.Random;
public class Random_Reference{
public static void main(String[] args){
// 创建一个Random类型的变量
Random rand = new Random(); // 功能1:调用Random类中的功能,产生一个随机整数;
int i = rand.nextInt(100);
System.out.println(i); // 功能2:调用Random类的功能,产生一个随机浮点数;
double d = rand.nextDouble();
System.out.println(d);
}
}

2、流程控制语句

2.1 条件控制语句if

if语句

if(条件语句){ 执行语句; ...}

/*
if语句:
编码格式 格式:
if(条件语句){
if语句的执行体,即执行语句;
}
条件语句:必须是布尔类型 1==1 true||false
执行体:当if中的条件为true时,执行这个执行体;
当if中的条件为false时,什么也不做;
*/
public class if_control{
public static void main(String[] args){
int i = 5;
if(i >= 5){
System.out.println("我是"+i+"号");
i++;
}
System.out.println("我号码增大: "+i);
// System.out.println(i);
}
}

if...else语句

格式:if(条件语句){执行语句1;}else{执行语句2;}

/*
if...else 语句格式
编写格式
if(条件){
if的执行体
}
else{
else的执行体
}
当if中的条件为true时,执行if的执行体;
当if中的条件为false时,执行else的执行体;
*/
public class ifelse_control{
public static void main(String[] args){
int i = 25; if(i%2 == 0){
System.out.println(i+"是偶数");
}
else{
System.out.println(i+"是奇数");
}
}
}

if...(else if)...else语句

/*
if...elseif...if 语句
适合在程序中,实现多条件的判断,条件的个数没有限制;
编写格式:
if(条件){
执行体1;
}
else if(条件){
执行体2;
}
else{
执行体3;
}
*/
public class if_elseif_else{
public static void main(String[] args){
//典型案例,成绩分类
int i = 88; if(i>=90){
System.out.println(i+"是优秀");
}
else if(i>+80){
System.out.println(i+"是良好");
}
else if(i>=70){
System.out.println(i+"是中等");
}
else if(i>=60){
System.out.println(i+"是及格");
}
else{
System.out.println(i+"不及格");
}
}
}

2.2 if语句与三元运算符的互换

/*
if语句和三元运算符的替换
要求:计算两个数的最大值
例如:两个整数比较大小 使用if和三元运算符的情况:
(1)判断条件多,则使用if;
(2)三元,必须是有结果的,if可以没有结果;
*/
public class if_Ternary_replace{
public static void main(String[] args){
int i = 5;
int j = 5; // 使用if语句,判断出最大值
if(i>j){
System.out.println(i+"是最大值");
}
else{
System.out.println(j+"是最大值");
} // 使用三元运算实现
int k = i>j?i:j;
System.out.println(k+"是最大值");
}
}

2.3 循环语句

while循环

/*
While循环:
编码格式:
while(条件){
循环体
} 条件:当条件是true,就执行循环体,执行完循环体后,程序再次判断条件是否为true,如果是则继续执行循环体,否则循环结束;
循环体:循环体和if执行体一样,都是语句;
*/
public class while_circle{
public static void main(String[] args){ int i = 1;
while(i<7){
System.out.println("互联网思维"+i);
i++;
}
}
}

for循环

/*
for循环
编码格式
for(初始化变量; 条件; 增量){
循环体
} 初始化变量:定义变量,作用,控制循环的次数;
条件:当条件是true,执行循环体,条件是false,结束循环
增量:变量自增情况,例如:i++,i=i+2
*/
public class for_circle{
public static void main(String[] agrs){
// 定义变量,用于求阶乘
double factorial = 1;
int i,j=0; // for循环
for(i=10; i>0; i--){
System.out.println(i);
factorial = factorial*i;
j++;
}
System.out.println('/n'+j+"的阶乘是"+factorial);
}
}

do...while循环

/*
do...while循环
编写格式:
do{
循环体;
}while(条件); 特点:无条件先执行一次;
*/
public class do_while_circle{
public static void main(String[] args){
int i = 1;
do{
System.out.println("x="+i);
i++;
}while(i<10);
}
}

死循环

while死循环;while(true){}
for死循环;for(;true;){}

2.4 循环嵌套

/*
循环嵌套:
for(){
for(){
循环体
}
(循环体)——可以不存在
}
总循环次数=外循环次数*内循环次数;
内循环是外循环的循环体;外循环控制行数,内循环控制每行个数;
*/

打印偏右三角形:

public class for_Nesting{
public static void main(String[] args){
// 打印由星星组成的三角形
for(int i=0; i<9; i++){
for(int j=0; j<5; j++){ if(i<=4){
if(j<=i)
System.out.print("* ");
}
else{
if(j>=i-4)
System.out.print("* ");
}
}
System.out.println();
}
}
}

输出结果为:

*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*

打印出菱形

public class for_Nesting{
public static void main(String[] args){
// 打印由星星组成的菱形
for(int i=0; i<9; i++){
if(i<5){
for(int k=4-i; k>0; k--)
System.out.print(" ");
}
else{
for(int k=i-4; k>0; k--)
System.out.print(" ");
}
for(int j=0; j<5; j++){ if(i<=4){
if(j<=i)
System.out.print("* ");
}
else{
if(j>=i-4)
System.out.print("* ");
}
}
System.out.println();
}
}
}

输出结果为:

    *
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*

2.5 跳转语句

Break语句

/*
break 关键字
作用于循环中,终止循环的作用;
但是,break终止的是所在位置的循环,但是不能终止以外的循环; switch语句中的表达式的数据类型,是有要求的
JDK1.0 - 1.4 数据类型接收 byte short int char
JDK1.5 数据类型接收 byte short int char enum(枚举)
JDK1.7 数据类型接收 byte short int char enum(枚举) string
*/
public class break_jump{
public static void main(String[] args){
for(int i=0; i<10; i++){
for(int j=0; j<10; j++){
System.out.print("j="+j);
break;
}
System.out.println("i="+i);
}
}
}

有一种break能够终止指定循环位置:

public class break_jump{
public static void main(String[] args){
a:for(int i=0; i<10; i++){
for(int j=0; j<10; j++){
System.out.print("j="+j);
break a;
}
System.out.println("i="+i);
}
}
}

continue语句

/*
continue关键字
作用是终止本次循环,进入到下一个循环; */
public class continue_jump{
public static void main(String[] args){
for(int i=1; i<10; i++){
if(i%5!=0){
continue;
}
else{
System.out.println("5的倍数有:"+i);
}
}
}
}

2.6 选择结构switch

/*
选择结构 switch语句
编写格式
switch(表达式){
case 常量1:
要执行的语句;
break 常量2; case 常量2:
要执行的语句;
break; case 常量3:
要执行的语句;
break; default:
要执行的语句;
break;
} 执行流程:表达式和case后面的常量进行比较
匹配到哪个case常量,就执行对应语句;遇到break后,就结束;
*/
public class switch_opt{
public static void main(String[] args){
// 定义变量,保存星期位
int week = 6;
// switch语句
switch(week){
case 1:
System.out.println("星期"+week);
break; case 2:
System.out.println("星期"+week);
break; case 3:
System.out.println("星期"+week);
break; case 4:
System.out.println("星期"+week);
break; case 5:
System.out.println("星期"+week);
break; case 6:
System.out.println("星期"+week);
break; default:
System.out.println("星期"+week);
break;
}
}
}

case语句

switch特性:case穿透性;(不管前面的case,直接往后执行,即不匹配case,就往下走)

如果多个case语句的执行语句是一样的,则该执行语句只需要书写一次即可。

case 1 case 2 ... case 5输出结果相同,则可以写成:

switch(week){
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("工作日");
break; case 6:
case 7:
System.out.println("休息日");
break;
}

3、猜数字案例

/*
在一定范围内猜数字
(1)随机数生成1-100的固定数,用Random;
键盘输入,用Scanner;
(2)作比较,和固定数做比较,用if结构;
(3)不断猜数字,直到猜正确,用while结构;
*/
import java.util.Random;
import java.util.Scanner;
public class guess_number{
public static void main(String[] args){
System.out.println("猜数字游戏开始了");
System.out.println("输入1-100的数字:");
// 创建Random类
Random rand = new Random();
int randNumber = rand.nextInt(100)+1; //使用功能nextInt()获取数字输入; // 创建Scanner类变量
Scanner sc = new Scanner(System.in); while(true){
int number = sc.nextInt();
if(number>randNumber){
System.out.println("猜大了");
}
else if(number<randNumber){
System.out.println("猜小了");
}
else{
System.out.println("恭喜你,猜中了");
break;
}
}
}
}

java控制流的更多相关文章

  1. java 控制流

    一:     块作用域 块(即复合语句):是指由一对花括号括起来的若干条简单的java语句.块决定了变量的作用域,一个块可以嵌套在另一个块中,如下: public class print_In { p ...

  2. java控制流学习

    java流程控制学习 Scanner对象 概念 1.通过Scanner类实现程序和人的交互,通过它获取到用户的输入.java.util.Scanner是java5的特征. 我们可以通过Scanner类 ...

  3. HowToDoInJava Java 教程·翻译完成

    原文:HowToDoInJava 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. ApacheCN 学习资源 目录 核心 Java 教程 什 ...

  4. Dart编程语言入门

    Dart基础入门语法介绍,详细说明可以查看相关视频<Dart编程语言入门>. 变量与常量 变量 1.使用 var 声明变量,默认值为 null var a;//null a = 10; 2 ...

  5. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  6. java基础-控制流语句

    浏览以下内容前,请点击并阅读 声明 一般情况下,代码的执行按照从上到下的顺序,然而通过加入一些判断,循环和跳转语句,你可以有条件地执行特定的语句. 接下来分三部分介绍Java的控制流语句,他们是判断语 ...

  7. 黑马程序员——JAVA基础之程序控制流结构之判断结构,选择结构

    ------- android培训.java培训.期待与您交流! ---------- 程序控制流结构:顺序结构:判断结构:选择结构:循环结构. 判断结构:条件表达式无论写成什么样子,只看最终的结构是 ...

  8. 《深入Java虚拟机学习笔记》- 第16章 控制流

    <深入Java虚拟机学习笔记>- 第16章 控制流

  9. Java使用条件语句和循环结构确定控制流

    与任何程序设计语言一样,Java使用条件语句和循环结构确定控制流.本文将简单讲解条件.循环和switch. 一.块作用域 块(block),即复合语句.是指由一对大括号括起来的若干条简单的Java语句 ...

随机推荐

  1. linux内核中的IPIs是什么?

    答: 处理器间中断(Interprocessor Interrupts)

  2. 如何清除浮动塌陷? float:left 塌陷

    参考文章: http://www.jb51.net/css/502268.html 原文链接:http://www.jianshu.com/p/a0500b54da13 只要给li的宽度, 规定得小一 ...

  3. js 二分搜索树删除子节点

    删除的节点含有左子树或者右子树,用其子树来代替成为被删除节点的父节点的子树 删除左右都有孩子的节点,找到右边子树最小的节点作为父节点

  4. 题解——HDU 2089 不要62(数位DP)

    最近在学数位DP 应该是入门题吧 设\( dp[i][0/1] \)表示到第\( i \)位时,前一位是否是6的满足条件的数的个数 然后就是套路 注意\( limit \)的限制条件以及转移时候信息的 ...

  5. (转) Read-through: Wasserstein GAN

    Sorta Insightful Reviews Projects Archive Research About  In a world where everyone has opinions, on ...

  6. (转载)winform图片标尺控件

    最近要做个winform的东西,要在里面集成一个类似Windows自带画图的标尺功能,还要能在图片上画矩形框.在网上找了好久也没找到写好的控件,无奈自己做了一个. 目前还有些bug,这里先做个分享.( ...

  7. 常用markdown语法入门

    入门markdown常用基本语法,简单到让你怀疑人生~~ 不说废话,直接上图(如果图片显示不清晰,建议选中图片右键——在新标签页中打开图片,妥妥的呢!!) (左侧黑色背景为markdown语法,右侧为 ...

  8. Python 基础 Python是什么

    1.Python 是一门高级的.面向对象的,解释性,脚本语言.

  9. mybatis+spring boot, mapper 提示Could not autowire. No beans of … type found

    工具及背景: IntelliJ IDEA 2016.1.3 Ultimate.spring boot, maven项目,利用mybatis 注解的方式查询mysql. 业务逻辑关系:controlle ...

  10. 陌上花开——CDQ分治

    传送门 “CDQ分治”从来都没有听说过,写了这题才知道还有这么神奇的算法. (被逼无奈).w(゚Д゚)w 于是看了不少dalao的博客,对CDQ算法粗浅地了解了一点.(想要了解CDQ的概念,可以看下这 ...