Java基础学习(四)
流程控制
/*
控制流程语句之---if 判断语句
格式一: 只适用于一种情况下去使用。
if(判断条件){
符合条件执行的代码;
}
格式二:适用于两种情况下去使用
if(判断条件){
符合条件执行的代码
}else{
不符合条件执行 的 代码
}
]
格式3: 适用于多种情况使用的
if(判断条件1){
符合条件1执行的 语句;
}else if(判断条件2){
符合条件2执行 的语句;
}else if(判断条件3){
符合条件3执行 的语句;
}else if(判断条件4){
符合条件4执行 的语句;
}......else{
都不符合上述 条件执行的代码...
}
*/
class Demo1
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
/*
控制流程语句之----switch选择判断语句
switch语句的格式:
switch(你的选择){
case 值1:
符合值1执行的代码
break;
case 值2:
符合值 2执行的代码
break;
case 值3:
符合值 3执行的代码
break;
case 值4:
符合值 4执行的代码
break;
......
default:
你的选择都符合上述的选项时执行的代码;
break;
}
switch语句要注意的事项:
1. switch语句使用的变量只能是byte、 char、 short、int、 String数据类型,String数据类型是从jdk7.0的时候开始支持的。
2. case后面跟 的数据必须是一个常量。
3. switch的停止条件:
switch语句一旦匹配上了其中的一个case语句,那么就会执行对应的case中的语句代码,执行完毕之后如果没有
遇到break关键字或者是结束switch语句的大括号,那么switch语句不会再判断,按照代码的顺序从上往下执行
所有的代码。直到遇到break或者是结束siwitch语句的大括号为止。
4. 在switch语句中不管代码的顺序如何,永远都是会先判断case语句,然后没有符合的情况下才会执行default语句。
if--else if---else if 语句与switch语句非常的相似:
switch语句的优点:switch语句的结构清晰。
switch缺点:如果 判断的条件是一个区间范围的,使用switch操作就非常的麻烦了。
判断以下那些不是计算机语言( D )
A java B C# C javascript D android
*/
class Demo2{
public static void main(String[] args)
{
int option = 13; //定义一个变量存储你的选择
switch(option){
case 1:
System.out.println("java");
case 2:
System.out.println("C#");
case 3:
System.out.println("javascript");
case 4:
System.out.println("android");
default:
System.out.println("你的选择有误");
}
/*
String str = "world";
switch(str){
case "hello":
System.out.println("hello");
break;
case "world":
System.out.println("world");
break;
}
*/
}
}
/*
需求: 接受键盘录入一个月份, 根据对应的月份输出对应的季节。
345 春天
678 夏天
9 10 11 秋天
1 2 12 冬天
要求使用switch语句实现。
*/
import java.util.*;
class Demo4
{
public static void main(String[] args)
{
System.out.println("请输入一个月份:");
//创建一个扫描器
Scanner scanner = new Scanner(System.in);
//调用扫描器的nextInt方法
int month = scanner.nextInt();
switch(month){
case 3:
case 4:
case 5:
System.out.println("春天");
break;
case 6:
case 7:
case 8:
System.out.println("夏天");
break;
case 9:
case 10:
case 11:
System.out.println("秋天");
break;
case 12:
case 1:
case 2:
System.out.println("冬天");
break;
default:
System.out.println("没有对应的季节");
break;
}
}
}
/*
循环语句----while循环语句
while循环 语句的格式:
while(循环的条件){
循环语句;
}
while循环语句要注意的事项:
1. while循环语句一般是通过一个变量控制其循环的次数。
2. while循环语句的循环体代码如果只有一个语句的时候,那么可以省略大括号。但是也是不建议大家省略。
3. while循环语句的判断条件后面不能跟有分号,否则会影响到执行的效果。
需求: 在控制上打印五句hello world.
*/
class Demo5
{
public static void main(String[] args)
{
int count = 0;
while(count<5){
System.out.println("Hello World!");
count++;
}
}
}
/*
需求: 计算1+2+3+....+ 100的总和。
*/
class Demo6{
public static void main(String[] args)
{
int num = 1;
int sum = 0; //定义一个变量用于保存每次相加的结果
while(num<=100){
sum = sum+num; // sum = 1
num++;
}
System.out.println("sum = "+ sum);
}
}
/*
需求1:计算1-100,7的倍数总和。 7 14 21
如何产生一个随机数。
步骤:
1. 创建一个随机数对象。
2. 调用随机数对象的nextInt方法。
3. 导包。
*/
class Demo7 {
public static void main(String[] args){
int num = 1;
int sum = 0; //定义一个变量用于保存每次相加的总和。
while(num<=100){ // num = 1
if(num%7==0){
sum = sum+num;
}
num++;
}
System.out.println("总和是:"+ sum);
}
}
/*
需求2: 实现猜数字游戏, 如果没有猜对可以继续输入你猜的数字,如果猜对了停止程序。
最多只能猜三次,如果还剩下最后一次机会的时候要提醒用户。
*/
import java.util.*;
class Demo8 {
public static void main(String[] args)
{
//创建一个随机数对象
Random random = new Random();
//调用随机数对象的nextInt方法产生一个随机数
int randomNum = random.nextInt(10)+1; //要求随机数是 1~10
//创建一个扫描器对象
Scanner scanner = new Scanner(System.in);
while(true){
System.out.println("请输入你要猜的数字:");
//调用扫描器的nextInt方法扫描一个数字
int guessNum = scanner.nextInt();
if (guessNum>randomNum){
System.out.println("猜大了..");
}else if(guessNum<randomNum){
System.out.println("猜小了..");
}else{
System.out.println("恭喜你,猜对了`..");
break;
}
}
}
}
/*
控制流程语句----do while循环语句
格式:
do{
}while(判断条件);
需求: 在控制上打印五句hello world.
while循环语句与do-while循环语句的区别:
while循环语句是先判断后执行循环语句的,do-while循环语句
是先执行,后判断。不管条件是否满足至少会执行一次。
*/
class Demo9{
public static void main(String[] args)
{
/*
int count =0;
while(count<5){
System.out.println("Hello World!");
count++;
}
在java中,java编译器是不允许写废话。
boolean flag = false;
while(flag){
System.out.println("Hello World!");
}
boolean flag = false;
do{
System.out.println("Hello World!");
}while(flag);
*/
int count = 0;
do
{
System.out.println("hello world");
count++;
}while(count<5);
}
}
/*
需求: 使用do-while算出1-100之间偶数的总和。
*/
class Demo10
{
public static void main(String[] args)
{
int num = 1;
int sum = 0; //定义一个变量用于保存每次相加的总和
do{
if(num%2==0){
sum += num;
}
num++;
}while(num<101);
System.out.println("sum = "+ sum);
}
}
/*
控制流程语句之---for循环语句
for循环语句的格式:
for(初始化语句;判断语句;循环后的语句){
循环语句;
}
for循环语句 要注意的事项:
1. for(;;)这种写法 是一个死循环语句,相当于while(true);
2. for循环语句的初始化语句只会执行一次,只是在第一次循环的时候执行而已。
3. for循环语句的循环体语句只有一句的时候,可以省略大括号不写。但是不建议省略。
需求: 在控制上打印五句hello world.
*/
class Demo11
{
public static void main(String[] args)
{
/*
int count=0;
while(count<5);{
System.out.println("Hello World!");
count++;
}
int count = 0 ;
for(System.out.println("初始化语句A");count<5 ;System.out.println("循环后的语句C")){
System.out.println("循环体语句B");
count++;
}
*/
for(int count = 0 ; count<5; count++){
}
{
System.out.println("hello world");
}
}
}
/*
需求: 在控制台上打印一个 五行五列矩形/.
*****
*****
*****
*****
*****
先打印一行
*/
class Demo12 {
public static void main(String[] args)
{
for(int j = 0 ; j<5 ; j++){ // 控制行数
for(int i = 0 ; i<5 ; i++){ // 控制列数
System.out.print("*");
} // *****
//换行
System.out.println();
}
}
}
/*
需求: 在控制台上打印一个正立的直角三角形 。
*
**
***
****
*****
多行多列的图形。
行数 5行
列数: 会发生变化 的.
分析列数:
i = 0 ; i<5; j=0 ; j<=i 1个星号
i = 1 ; i<5 ;j=0 ; j<=1 2个星号
i = 2 ; i<5; j=0 ; j<=2 3个星号
.....
*/
class Demo13
{
public static void main(String[] args)
{
for(int i = 0 ; i< 5 ; i++){
for(int j = 0 ; j<=i ; j++){ //控制列数
System.out.print("*");
}
//换行
System.out.println();
}
}
}
/*
需求: 打印一个倒立的直角三角形。
*****
****
***
**
*
5行
列数会发生变化
j<(5-i)
i= 0 ; i<5; j=0 ; j<5 ; 五个星号
i = 1; i<5; j=0 ; j<4; 四个星号
i = 2; i<5; j=0 ; j<3; 三个星号
*/
class Demo14
{
public static void main(String[] args)
{
for(int i = 0 ; i<5; i++){
for (int j = 0 ; j<(5-i) ;j++ ){
System.out.print("*");
}
//换行
System.out.println();
}
}
}
/*
需求: 打印一个九九乘法表.
*/
class Demo15
{
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();
}
}
}
/*
转义字符:特殊字符使用”\”把其转化成字符的本身输出,那么使用”\”的字符称作为转移字符。
需求: 在控制台上打印一个 hello" world
常见的转义字符有:
\b Backspace (退格键)
\t Tab 制表符(制表符的作用就是为了让一列对齐) 一个tab一般等于四个空格。
\n 换行
\r 回车 把光标移动到一行的首位置上。
注意: 如果是在windows系统上操作文件的时候需要换行,是需要\r\n一起使用的。
如果是在其他的操作系统上需要换行,仅需要\n即可。
*/
import java.io.*;
class Demo16 {
public static void main(String[] args) throws Exception
{
//System.out.println("Hello哈哈\rworld!");
File file = new File("F:\\a.txt");
FileWriter out = new FileWriter(file);
out.write("大家好\r\n");
out.write("你们好");
out.close();
}
}
/*
break、
break适用范围:只能用于switch或者是循环语句中。
break作用:
1. break用于switch语句的作用是结束一个switch语句。
2. break用于循环语句中的作用是结束当前所在的循环语句。
笔试题目:break目前位于内层的for循环,如何才能让break作用于外层的for循环。
可以标记解决
标记的命名只要符合标识符的命名规则即可。
*/
class Demo17
{
public static void main(String[] args)
{
aaa:for(int j = 0 ; j<3 ; j++){ // j=0 外层for循环
bbb:for(int i = 0 ; i< 2 ; i++){ // i=0 内层for循环
System.out.println("hello world"); // 1
break aaa;
}
}
}
}
/*
continue关键字
continue的适用范围: continue只能用于循环语句。
continue的作用:continue的作用是跳过本次的循环体内容。继续下一次。
continue要注意的事项:
1. 在一种情况下,continue后面不能跟有其他语句,因为是永远都无法执行到。
2. continue 也可以配合标记使用的。
*/
class Demo18
{
public static void main(String[] args)
{
/*
for(int i = 0 ; i<5 ; i++){ // i=1 2
if(i==1){
continue;
}
System.out.println("hello "+i);
}
outer:for(int i = 0 ; i<3; i++){ // i= 0; i =1 i=2 3
inner:for(int j = 0 ; j<2 ; j++){ //j=0
System.out.println("hello"); //1 2 3
continue outer;
}
}
需求: 计算1-100的偶数总和.
*/
int sum = 0 ;
for(int num = 1 ; num<=100 ; num++){
if(num%2!=0){
continue; //如果是奇数就跳过本次循环。
}
sum = sum+num;
}
System.out.println("总和:"+ sum);
}
}
/*
函数(方法):
函数的作用: 提高功能代码的复用性。
需求:做两个数的加法功能。
目前存在的问题:以下的代码都是在做一个加法功能,而
这里加法功能 的代码目前是没有任何的复用性的。
解决方案: 如果一个功能的代码要被复用起来,那么这时候可以把
这里的功能代码封装起来,在java中把功能代码封装起来的是以函数的形式体现的。
函数的定义格式:
修饰符 返回值类型 函数名(形式参数..){
需要被封装的功能代码;
return 结果;
}
分析函数:
public static int add(){
int a =2;
int b =3;
return a+b;
}
修饰符: public static
返回值类型: int 。 返回值类型就是指函数运行完毕后,返回的结果的数据类型。
注意: 某些函数是没有结果返回给调用者的,那么这时候返回值类型是void。
函数名: add 函数名的作用:如果需要调用该函数就需要使用的函数名。 函数名只要符合标识符的命名规则即可。
函数名的命名规范: 首单词全部小写,其他单词的首字母大写,其他小写。
形式参数: 如果一个函数在运行的时候,存在着数据是要调用者确定 的,那么这时候就应该定义形式参数。
return : 把一个结果返回给调用者。
函数的特点:
1. 函数定义好之后,是需要被调用才会执行的。 main函数是有jvm调用的,不需要我们手动调用。
*/
class Demo1
{
public static void main(String[] args){
//int sum = add(2,3); //调用了add名字 的函数。
//System.out.println("结果:"+ sum);
add(2,3);
}
/*
//做加法功能的函数
public static int add(int a,int b){ // int a,int b 形式参数: 形式参数的值是交给调用者确定的。
return a+b;
}
需求: 定义一个函数做加法功能,不需要返回结果给调用者,直接输出结果即可。
*/
public static void add(int a ,int b){
int sum = a+b;
System.out.println("结果:"+ sum);
}
}
/*
函数的定义格式:
修饰符 返回值类型 函数名(形式参数..){
需要被封装的功能代码;
return 结果;
}
如何定义一个函数:
1. 返回值类型。
2. 是否存在未知的参数(是否存在要由调用者确定的参数)。---->形式参数
*/
class Demo2
{
public static void main(String[] args)
{
//System.out.println("Hello World!");
//int max = getMax(14,5); //调用了函数 实际参数
//System.out.println("最大值:"+ max);
getMax(3,7);
}
//需求2:定义一个函数比较两个int类型的数据大小, 不需要把最大值返回给调用者,直接打印即可。
public static void getMax(int a, int b){
int max = 0; //定义一个变量用于保存最大值的
if(a>b){
max = a;
}else{
max = b;
}
System.out.println("最大值:"+ max);
}
/*
//需求1: 定义一个函数比较两个int类型的数据大小, 把最大值返回给调用者。
public static int getMax(int a, int b){ // 形式参数
int max = 0; //定义一个变量用于保存最大值的
if(a>b){
max = a;
}else{
max = b;
}
return max; //把结果返回给调用者
}
*/
}
/*
需求1: 定义一个函数判断一个分数的等级,把分数的等级返回给调用者。
"A等级" ”B等级“
如何 定义函数:
1. 返回值类型。 String
2. 未知的参数--->形式参数。 分数
需求2: 定义一个函数打印一个乘法表,不需要返回任何数据。
1. 返回值类型。 void
2. 未知的参数--->形式参数。 到底是什么乘法表
函数的特点:
1. 函数的作用就是把一个功能代码给封装起来,已达到提高功能代码的复用性。
2. 函数定义好之后是需要被调用才会执行的。
3. 如果一个函数没有返回值返回给调用者,那么返回值类型必须是使用void表示。
*/
class Demo3
{
public static void main(String[] args) {
//String result = getGrade(189);
//System.out.println(result);
print(7);
}
//需求2: 定义一个函数打印一个乘法表,不需要返回任何数据。
public static void print(int row){
for(int i = 1 ; i<= row ; i++){
for (int j = 1 ;j<=i ;j++ ){
System.out.print(i+"*"+j+"="+i*j+"\t");
}
//换行
System.out.println();
}
}
//需求1: 定义一个函数判断一个分数的等级,把分数的等级返回给调用者。
public static String getGrade(int score){
String grade = ""; //定义一个变量存储等级
if(score>=90&&score<=100){
grade = "A等级";
}else if(score>=80&&score<=89){
grade = "B等级";
}else if(score>=70&&score<=79){
grade = "C等级";
}else if(score>=60&&score<=69){
grade = "D等级";
}else if(score>=0&&score<=59){
grade = "E等级";
}else{
grade = "补考等级";
}
return grade; //把等级返回给调用者
}
}
Java基础学习(四)的更多相关文章
- java基础学习四
一.java中的基本数据类型 二.double和float精度不准的问题 double和float本身确实存在某种缺陷,不能用于精确计算. 解决办法: 用java.math.BigDecimal,通过 ...
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
- java基础学习总结——java环境变量配置(转)
只为成功找方法,不为失败找借口! 永不放弃,一切皆有可能!!! java基础学习总结——java环境变量配置 前言 学习java的第一步就要搭建java的学习环境,首先是要安装 JDK,JDK安装好之 ...
- JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API
森林森 一份耕耘,一份收获 博客园 首页 新随笔 联系 管理 订阅 随笔- 397 文章- 0 评论- 78 JAVA基础学习day16--集合三-Map.HashMap,TreeMap与常用A ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- Java基础学习(4)
Java基础学习(四) String类 特点:创建后不可再修改,看起来的修改只是创建了新的对象 常用方法 StringBuilder类 目的:解决String类频繁创建对象的问题 常用方法 特点:非线 ...
- Java基础学习-- 继承 的简单总结
代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...
- Java基础学习中一些词语和语句的使用
在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...
- 转载-java基础学习汇总
共2页: 1 2 下一页 Java制作证书的工具keytool用法总结 孤傲苍狼 2014-06-24 11:03 阅读:25751 评论:3 Java基础学习总结——Java对象的序列化和 ...
- java基础学习总结——开篇
java是我学习的第一门编程语言,当初学习java基础的时候下了不少功夫,趁着这段时间找工作之际,好好整理一下以前学习java基础时记录的笔记,当作是对java基础学习的一个总结吧,将每一个java的 ...
随机推荐
- Python 类(一)
这一篇让先抽象的了解下类与实例 一类的定义 从具体的程序设计观点来看: 类是一种数据结构.我们可以使用类来定义包含数据值和行为特性的对象(类对象). 类是封装逻辑和数据的另一种形式. 面向对象设计观点 ...
- Python Day21
Cookie 1.获取Cookie: request.COOKIES['key'] request.get_signed_cookie(key, default=RAISE_ERROR, salt=' ...
- .net App_Browser文件夹的作用
该可选的文件夹包含.browser文件..browser文件描述浏览器(不管是移动设备浏览器,还是台式机浏览器)的特 征和功能.ASP.NET在安装路径下的Config\Browser文件夹中安装了 ...
- linux 卸载编译安装的软件
有些软件会有 make uninstall 之类的功能,但大多都没有,所以只有手动删除,或者在configure的时候加个preifx参数,比如 --preifx=/opt/squid,这样当你不用的 ...
- ajax传输中文乱码解决方法
问题描述: 我是在一个jsp页面有一个保存按钮,点击时会触发saveForm()的js函数,在saveForm()函数里经过校验后,会通过ajax发送数据请求,这样就不用通过提交表单来传输数据了,aj ...
- 比特币_Bitcoin 简介
2008-11 Satoshi Nakamoto Bitcoin: A Peer-to-Peer Electronic Cash System http://p2pbucks.com/?p=99 ...
- php字符串操作集锦
web操作, 主要就是对字符文本信息进行处理, 所以, 字符串操作几乎占了很大一部分的php操作.包括 注意strstr 和 strtr的区别? 前者表示字符串查找返回字符串,后者表示字符串中字符替换 ...
- JS提交对象数组到服务端的方法总结(C#实例)
*转载请注明出处: 作者:willingtolove: 本文链接:http://www.cnblogs.com/willingtolove/p/4741549.html 正文: 1. 方法一:利用aj ...
- CH模拟赛 还教室
/* 区间操作,可以推一推式子,方差为平方的平均数-平均数的平方,维护区间和与区间平方和,平方和的维护方法类似,式子推一推就行了,注意约分 */ #include<iostream> #i ...
- Velocity 局部定制模板
Velocity介绍 Velocity是一个基于java的template engine.它允许Web designer引用Java Code中定义的方法.Web designer可以和Java工程师 ...