个人博客网:https://wushaopei.github.io/    (你想要这里多有)

目录

前置:

* . 从键盘读取数据:

1、分支结构

1.1 if-else结构

1.2 switch-case结构

2、循环结构

2.1 循环: for循环

案例实操:水仙花数

2.2 循环  while


前置:

 * . 从键盘读取数据:

1.导包 import java.util.Scanner;
    2.创建对象 Scanner s = new Scanner(System.in);
    3.调用方法 int age = s.nextInt();

//1.导包 import java.util.Scanner;
import java.util.Scanner;
public class ScannerTest{ public static void main(String[] args){ //2.创建对象 Scanner s = new Scanner(System.in);
Scanner s = new Scanner(System.in); System.out.println("请输入您的名字");
String name = s.next(); System.out.println("请输入您的年纪");
//3.调用方法 int age = s.nextInt(); (对象名.方法名)
int age = s.nextInt(); System.out.println("请输入您的成绩");
double score = s.nextDouble(); System.out.println("请输入您长的帅吗?(true/false)");
boolean handsome = s.nextBoolean(); System.out.println("名字=" + name);
System.out.println("年纪=" + age);
System.out.println("成绩=" + score);
System.out.println("帅不帅=" + handsome);
}
}

1、分支结构

1.1 if-else结构

1:

If(条件表达式){

执行语句;

}

如果条件表达式的结果为true则执行执行语句

2:二选一

If(条件表达式){

执行语句1:

}else{

执行语句2;

}

如果表达式的结果为true则执行 执行语句1,否则执行 执行语句2.

3:多选一

If(条件表达式1){

执行语句1;

}else if(条件表达式2){

执行语句2;

} else if(条件表达式3){

执行语句3;

}

......

else{

执行语句n;

}

哪个条件表达式的结果为true就执行相应的执行语句.

明:

  1. 条件表达式的结果是布尔类型。
  2. else可以省略
  3. 如果执行语句只能一句的话,大括号可以省略但不建议
  4. 多个条件表达式如果为互斥关系,谁上谁下都可以。如果为包含关系,范围小的在上面范围大的在下面。
public class IfTest{

	public static void main(String[] args){

		//第一种形式
boolean handsome = false; if(handsome){
System.out.println("伦家愿意的了");
} //第二种形式 int money = 50;
if(money < 50){
System.out.println("人家不是那种人了");
}else{
System.out.println("千万别把我当人");
} //第三种形式
int age = 20; if(age < 18){
System.out.println("少儿不宜");
}else if(age >= 18 && age < 30){
System.out.println("别看片了还是和媳妇逛街去吧");
}else if(age >= 30 && age < 50){
System.out.println("看片多了吧,还是应该多运动");
}else{
System.out.println("年纪太大了,还是不玩了");
}
System.out.println("---------------------------------------------------"); int score = 160; if(score == 100){
System.out.println(100);
}else if(score > 90 && score < 100){
System.out.println("大于90");
} System.out.println("代码执行完毕"); }
}

案例实操(1):

岳小鹏参加Java考试,他和父亲岳不群达成承诺:
如果:
成绩为100分时,奖励一辆BMW;
成绩为(80,99]时,奖励一台iphoneX;
当成绩为[60,80]时,奖励一个 iPad;
其它时,什么奖励也没有。
请从键盘输入岳小鹏的期末成绩,并加以判断

说明:
    1.当有多个条件表达式时,如果多个条件表达式是互斥关系,谁上谁下都可以。
        如果多个条件表达式是包含关系,范围小的在上面。范围大的在下面。

import java.util.Scanner;
public class IfTest3{ public static void main(String[] args){ //第一步 从键盘读取成绩
Scanner s = new Scanner(System.in); //创建对象
System.out.println("请输入小鹏鹏的成绩");
int score = s.nextInt(); //从键盘读取成绩 //第二步 使用 if-else if进行判断
/*
if(score == 100){
System.out.println("不错不错给你一辆BMW");
}else if(score > 80 && score <= 99){
System.out.println("还可以给你iphoneX");
}else if(score >= 60 && score <= 80){
System.out.println("呐 给你一个ipad");
}else{
System.out.println("哼 还想要礼物 ,啥都没有");
}
*/ //带校验功能
/*
if(score >= 0 && score <= 100){ if(score == 100){
System.out.println("不错不错给你一辆BMW");
}else if(score > 80){
System.out.println("还可以给你iphoneX");
}else if(score >= 60){
System.out.println("呐 给你一个ipad");
}else{
System.out.println("哼 还想要礼物 ,啥都没有");
}
}
*/ if(score == 100){
System.out.println("不错不错给你一辆BMW");
}else if(score >= 60 && score <= 80){
System.out.println("呐 给你一个ipad");
}else if(score > 80 && score <= 99){
System.out.println("还可以给你iphoneX");
}else{
System.out.println("哼 还想要礼物 ,啥都没有");
} System.out.println("代码执行完毕"); }
}

案例实操(2):

编写程序:由键盘输入三个整数分别存入变量num1、num2、num3,
对它们进行排序(使用 if-else if-else),并且从小到大输出。

import java.util.Scanner;
public class IfTest4{ public static void main(String[] args){ //1.从键盘读取数据
Scanner s = new Scanner(System.in); System.out.println("请输入一个数");
int num1 = s.nextInt();
System.out.println("请输入一个数");
int num2 = s.nextInt();
System.out.println("请输入一个数");
int num3 = s.nextInt(); //比较前两个数的大小。再用第三个数和前两个数进行比较
if(num1 > num2){
//如果num3大于num1说明 num3 > num1 > num2
if(num3 > num1){
System.out.println(num2 + " " + num1 + " " + num3);
}else if(num3 < num2){
//如果num3小于num2 说明 num1 > num2 > num3
System.out.println(num3 + " " + num2 + " " + num1);
}else{
//其它 num1 > num3 > num2
System.out.println(num2 + " " + num3 + " " + num1);
}
}else{ //num1 <= num2
if(num3 > num2){
System.out.println(num1 + " " + num2 + " " + num3);
}else if(num3 < num1){
System.out.println(num3 + " " + num1 + " " + num2);
}else{
System.out.println(num1 + " " + num3 + " " + num2);
} }
}
}

案例实操(3)

/*

	(int)(Math.random() * 90  + 10) : 获取随机数
*/
public class IfTest6{ public static void main(String[] args){ //Math.random() 返回一个随机数,随机数的范围是 [0.0,1.0)
int number = (int)(Math.random() * 90 + 10); System.out.println(number);
}
}

1.2 switch-case结构

式:

switch(表达式){

	case 常量1:
执行语句1;
break;
case 常量2:
执行语句2;
break;
case 常量3:
执行语句3;
break; default:
执行语句n;
break; }

明:

1.当执行switch-case时,会先根据switch中的变量的值,依次和case后面的常量进行匹配。一旦匹配成功,则执行相应的执行语句。如果该case中没有break则继续向下执行其它执行语句。直到遇到break或者到达该结构中的结尾则跳出switch-case结构。

2.break :可选。如果有break当执行语句遇到时则跳出switch-case结构.

3.default : 可选(位置是灵活的)。如果没有匹配成功的。则执行default中的执行语句。

4.表达式的类型只能是 byte short int char 枚举 String

5.case后面只能是常量

案例实操(1):

import java.util.Scanner;
public class SwitchTest{ public static void main(String[] args){ int a = 100; switch(a){
default:
System.out.println("other");
//break; case 0:
System.out.println("0");
//break;
case 1:
System.out.println("1");
//break;
case 2:
System.out.println("2");
//break;
case 3:
System.out.println("3");
//break; } String str = "a";
switch(str){
case "a":
System.out.println("a");
break;
case "b":
System.out.println("b");
break; }
}
}

案例实操(2):

对学生成绩大于60分的,输出“合格”。低于60分的,输出“不合格”。

import java.util.Scanner;
public class SwitchTest3{ public static void main(String[] args){ Scanner s = new Scanner(System.in); System.out.println("请输入学生成绩"); int score = s.nextInt(); /*
switch(score / 10){ case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("不合格");
break;
case 6:
case 7:
case 8:
case 9:
case 10:
System.out.println("合格");
break; }
*/ switch(score / 60){ case 0:
System.out.println("不合格");
break;
case 1:
System.out.println("合格");
break;
}
}
}

案例实操(3):

编写程序:从键盘上输入2017年的“month”和“day”,要求通过程序输出输入的日期为2017年的第几天。

从键盘分别输入年、月、日,判断这一天是当年的第几天
 
    注:判断一年是否是闰年的标准:
       1)可以被4整除,但不可被100整除
       2)可以被400整除

import java.util.Scanner;
public class SwitchTest4{ public static void main(String[] args){ Scanner s = new Scanner(System.in); System.out.println("请输入年份");
int year = s.nextInt(); System.out.println("请输入月份");
int month = s.nextInt(); System.out.println("请输入日期");
int day = s.nextInt(); int sumDay = 0; //记录总天数 switch(month){ case 3:
//sumDay += 28; //sumDay = sumDay + 28; if((year % 400 == 0 )|| (year % 4 == 0 && year % 100 != 0)){
sumDay += 29;
}else{
sumDay += 28;
}
case 2:
sumDay += 31;//sumDay = sumDay + 31;
case 1:
sumDay += day;//sumDay = sumDay + day; } System.out.println(year + "-" + month + "-" + day + ",是当年的第" + sumDay + "天");
}
}

2、循环结构

循环的四个部分:

1.初始化条件
        2.循环条件
        3.循环体
        4.迭代条件

2.1 循环: for循环

格式 :

   for(初始化条件; 循环条件;迭代条件){
循环体
} for(1; 2;4){

}

循环顺序 : 1- 2 - 3 - 4 - 2 - 3 - 4 ...... 2

public class ForTest{

	public static void main(String[] args){

		//需求: 打印五遍我爱苍老师
//注意 : 循环条件结果为false时跳出循环体,结果为true时执行循环体
/*
int i = 0;
for(; i < 5; i++){
System.out.println("我爱苍老师");
} System.out.println(i); System.out.println("-------------------------------------");
*/ /*
练习 :求一百以内的偶数,输出偶数的个数,求偶数的总和。 练习:求一百以内的奇数,输出奇数的个,求奇数的总和(作业)
*/
int count = 0; //用于统计偶数的个数
int sum = 0; //用于统计偶数的总和
for(int i = 1; i <= 100; i++){ if(i % 2 == 0){
count++;
sum += i;
System.out.println(i);
}
} System.out.println("count=" + count + " sum=" + sum);
}
}

案例实操:水仙花数

输出所有的水仙花数,所谓水仙花数是指一个3   位数,其各个位上数字立方和等于其本身。
         例如: 153 = 1*1*1 + 3*3*3 + 5*5*5

public class ShuiXianHua{

	public static void main(String[] args){

		for(int i = 100; i < 1000; i++){

			//将各个位上的数进行拆分
int a = i / 100;
int b = i % 100 / 10;
int c = i % 10; if(i == (a * a * a + b * b * b + c * c * c)){
System.out.println(i);
}
}
}
}

2.2 循环  while

格式:

初始化条件
         while(循环条件){
        
            循环体;
            迭代条件;
        
         }

说明: 1.while和for循环可以相互转换

思考: while循环和for循环的区别是什么?

while初始化条件在结构外。for循环的初始化条件在结构内(也可以写在结构外)。

案例实操:

public class WhileTest{

	public static void main(String[] args){

		/*
练习 :求一百以内的偶数,输出偶数的个数,求偶数的总和。 练习:求一百以内的奇数,输出奇数的个,求奇数的总和(作业)
*/ //1.初始化条件
int i = 1;
int count = 0; //偶数的个数
int sum = 0; //偶数的总和
while(i <= 100){//2.循环条件 当循环条件的值为false时跳出当前while结构继续向下执行
//3.循环体
if(i % 2 == 0){
count++;
sum += i;
System.out.println(i);
}
//4.迭代条件
i++;
} System.out.println("count=" + count + " sum=" + sum); }
}

JavaSE (四)程序流程控制 -- if 、switch、for、while的更多相关文章

  1. Java 基础入门随笔(4) JavaSE版——程序流程控制

    上一节对于运算符有了大致的了解,这一节针对程序流程控制进行复习!程序流程控制包括顺序结构.判断结构(if).选择结构(switch).循环结构. 1.判断结构 ①if语句的第一种格式:        ...

  2. Java基础之程序流程控制

    Java中的程序流程控制 Java中的程序流程分为三种结构:①顺序结构:②分支结构:③循环结构 一.顺序结构 Java中定义成员变量的时候,采用的是前向引用,也就是后面的变量可以引用之前定义好的变量. ...

  3. Java基础-程序流程控制第二弹(循环结构)

    Java基础-程序流程控制第二弹(循环结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 流程控制有三种基本结构:顺序结构,选择结构和循环结构.一个脚本就是顺序结构执行的,选择结 ...

  4. Java基本语法--程序流程控制

    流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块.流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:顺序结构.分支结构.循环结构.本篇博客主要是对 ...

  5. [java学习笔记]java语言基础概述之运算符&程序流程控制&for循环嵌套

    一.运算符 算数运算符 +,-,*,/,%,++,-- 1.+,-,*,/ 整数除以整数的结果为舍弃了小数部分的整数. 2.%:取余 %左右都为正数,左边小于右边结果为左边值,如,4%5=4 %左边大 ...

  6. Java 基础 程序流程控制 (下)

    Java 程序流程控制 (下) 此篇单独对循环结构的知识点进行整理: 之前讲到循环结构分为:for循环,while循环,do...while循环三种最基本的循环结构:在JDK1.5以后的版本还提供了f ...

  7. Java 基础 程序流程控制 (上)

    Java程序流程控制 (上) Java程序大体分为三种流程控制结构:顺序结构.分支结构.循环结构 顺序结构 程序由上到下的逐行执行,中间没有任何跳转和判断语句. 示例代码如下: public clas ...

  8. 4. Scala程序流程控制

    4.1 程序流程控制说明 在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句,顺序控制,粉质控制,循环控制 温馨提示:Scala语言中控制结构和Java语言中的 ...

  9. Java基础-程序流程控制第一弹(分支结构/选择结构)

    Java基础-程序流程控制第一弹(分支结构/选择结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.if语句 1>.if语句的第一种格式 if(条件表达式){ 语句体: ...

  10. Excel VBA入门(四)流程控制2-循环控制

    所谓循环控制,即在循环执行一段代码,用于完成一些重复性任务. VBA中的循环控制语句主要有3种:for.while.loop.对于大多数人来说,for的使用频率最高,而我个人也觉得for是最为灵活的, ...

随机推荐

  1. 动态代理学习(一)自己动手模拟JDK动态代理

    最近一直在学习Spring的源码,Spring底层大量使用了动态代理.所以花一些时间对动态代理的知识做一下总结. 我们自己动手模拟一个动态代理 对JDK动态代理的源码进行分析 文章目录 场景: 思路: ...

  2. lambda表达式入门详解

    转自 2018-03-02 Sevenvidia 码农翻身 1.什么是Lambda? 我们知道,对于一个Java变量,我们可以赋给其一个"值".   如果你想把"一块代码 ...

  3. Springboot邮件发送思路分析

    毕业设计里需要邮件发送,所以学习,总的来讲,我考虑以下几点, 代码量少,代码简单.配置少,一看就懂,使用 JavaMail 太麻烦了. 异步执行,添加员工之后会发送入职邮件, 多线程处理,设计里有一个 ...

  4. 【HBase】快速了解上手rowKey的设计技巧

    目录 为什么要设计rowKey 三大原则 长度原则 散列原则 唯一原则 热点问题的解决 加盐 哈希 反转 时间戳反转 为什么要设计rowKey 首先要弄明白一点,Regions的分区就是根据数据的ro ...

  5. 【matlab 基础篇 03】一文带你全面了解 plot 绘图函数的使用(超详细+图文并茂)

    快速入门matlab,系统地整理一遍,如何你和我一样是一个新手,那么此文很适合你: 文章目录 1 前言 2 plot 2.1 显示正弦波 2.2 修改颜色 2.3 修改点的形状 2.4 修改线的形状 ...

  6. Linux共享库简单总结

    库 静态库 编译的二进制会重新包含一份静态库的副本 共享库 编译 gcc -shared -o file.c -fPIC 链接 ld ld-linux.so.2 可执行程序–>动态依赖表 流程: ...

  7. vue项目-打印页面中指定区域的内容(亲测有效!)

    关于打印整个页面的,没什么好说的.今天我给大家分享一个打印指定区域的方法,你想打印哪里,就打印哪里! 我也是刚刚开始接触打印这一块功能的,然后当然是找度娘深入了解了一番啦,期间试了网上的各种方法,有的 ...

  8. Ubuntu+uWSGI部署Django项目【鸿篇巨制,事无巨细】

    背景 任务: 视频翻译项目需要在两个服务器上进行通信(国内&海外的阿里服务器). 因为python是主语言,选用了Django 来快速部署API. 注:Django中文文档:https://d ...

  9. Gradle 多环境、多渠道打包

    最近项目从eclipse迁移到AS上,主要是为了使用gradle这个插件进行apk打包.毕竟程序员还是要与时俱进的.首先介绍下项目主要需求: 1.使用百度统计,需要对个平台的信息进行统计 2..api ...

  10. 学习笔记:平衡树-splay

    嗯好的今天我们来谈谈cosplay splay是一种操作,是一种调整二叉排序树的操作,但是它并不会时时刻刻保持一个平衡,因为它会根据每一次操作把需要操作的点旋转到根节点上 所谓二叉排序树,就是满足对树 ...