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的 ...
随机推荐
- HTML DOM prompt() 方法
1. 定义和用法 prompt() 方法用于显示可提示用户进行输入的对话框. 语法 prompt(text,defaultText) 参数 描述 text 可选.要在对话框中显示的纯文本(而不是 HT ...
- ubuntu14 安装配置nginx+php5+mysql
1.首先,升级软件包 sudo apt-get update sudo apt-get upgrade 2.安装nginx sudo apt-get install nginx 在浏览器输入服务器ip ...
- 代码质量管理工具——SonarQube
写在前面 SonarQube(简称Sonar)是管理代码质量的开放平台,它可以快速地对代码质量进行分析,并给出合理的解决方案,提高管理效率,保证代码质量. SonarQube的流行,在于以下几点: 开 ...
- Myeclipse 构建工作空间出错
MyEclipse工作空间报错如下:'Building workspace' has encountered a problem. Errors occurred during the build.并 ...
- java基础知识(五)java类
类是java的核心和本质,是java语言的基础. 一.java中的类 1.类class 一个类可以包含局部变量.实例变量.类变量(静态变量) 一个类至少有一个构造方法,如果没有,系统会默认给出一个无参 ...
- 阿里无线前端性能优化指南 (Pt.1 加载优化)
前言 阿里无线前端团队在过去一年对所负责业务进行了全面的性能优化.以下是我们根据实际经验总结的优化指南,希望对大家有所帮助. 第一部分仅包括数据加载期优化. 图片控制 对于网页特别是电商类页面来说,图 ...
- org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [XXX] in DispatcherServlet with name 'springMVC'
在web.xml中添加 <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern ...
- python之路十四
概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器 ...
- 得到 window.open 新页面中的数据
1.htm 页面 单击按 '钮后' 调用window.open方法,开启新窗口 2.htm 想实现---------------------- 在2.htm页面单击按钮 将相应的数据返回到 1. ...
- c#获取外网IP地址的方法
1.如果你是通过路由上网的,可以通过访问ip138之类的地址来获取外网IP 2.如果是通过PPPOE拨号上网的,可以使用以下代码获取IP //获取宽带连接(PPPOE拨号)的IP地址,timeout超 ...