public class Class_1 {
public static void main(String[]args) {
//主函数
char one='一';//定义一个变量为char型并赋值为:一 char(字符型用于存储单个字符,如'男','女'等单个字符)
String two="两本";//定义一个变量为String型并赋值为:两本 String(字符串型用于存储一串字符,如"今天天气不错呢!"等)
double fore=1.2;//定义一个变量为double型并赋值为:1.2 double(双精度浮点型用于存储带有小数的数字,如:1.02,2.336等)
int three=3;//定义变量three为int型并赋值为:3 int(整型用于存储整数,如1,2,3,12,56等)
System.out.println("java是一门强类型语言,需要严格的编写过程");//输出语句,输出我们所需要的结果。
System.out.println("我有"+one+"本Java,和"+two+"C语言以及"+three+"本Mysql。");
/*
* 自动数据转换:简单说就是将一个小空间变量的值赋给另个大空间变量如:
* int a=18;
* double b=a;
* double b=18;
* 强制数据转换:与自动数据转换相反。大传小会损耗精确度
* double c=29.888;
* int d=(int)c;
* int d=29;
数据类型:
int 整型占4个字节
double双精度浮点型占8字节
String字符串型占32字节
char字符型占2字节
变量:
定义:
会变的量,在计算机里是一个数据存储空间,不同的变量互不影响。
声明一个变量的整体步骤如下:
1.确定变量类型
2.确定变量名
3.确定变量值
语法格式:
格式一:数据类型(确定变量类型) 变量名 (确定变量名);
变量名=值(给变量一个默认值);
格式二:数据类型 变量名=值;
使用方法:
看上面代码1-1-1
输入语句:
使用步骤:
1.在Java源代码类上面引入Scanner类,写法如下:
import java.util.Scanner;
2.在类里面实例化Scanner类,写法如下:
Scanner input =new Scanner(System.in);
3.调用next()nextInt()方法接收用户键盘输入的内容,然后赋值给变量,其中next()方法接收用户输入的字符串,nextInt()方法则是接收用户输入的整型数据。写法如下:
int one=input.nextInt(); String two=input.next();
流程控制语句
if基本选择结构:
语法结构: if(条件){
代码块//条件成立后要执行的代码,可以是一条语句,也可以是一组语句
} 案例如下:
if(1>0){ System.ou.println("正确"); }
if-esle选择结构:
语法结构:
if(条件){
代码块
}else{
代码块
}
案例如下:
int score1=100;
int score2=78;
if((score1>97&&score2>85)||(score1==100&&score2>75)){
System.out.println("可以");
}else{
System.out.println("不行");
}
多重if选择结构:
语法结构:
if(条件1){
代码块1}else if(条件2){
代码块2
}else{
代码块3
}
注意:else块最多有一个或没有,else块必须放在else if块之后。
else if 块可以有多个或没有,需要几个else if块完全取决于需要。
案例如下:
if(score>=80){
//分数高于80
System.out.println("良好");
}else if(score>=60){
//分数大于60
System.out.println("中等");
}else{
//分数小于60
System.out.println("差");
}
嵌套if选择结构:
语法结构:
if(条件1){
if (条件2){
代码块1
}else
代码块2
}else
代码块3
}
注意:只有当满足外层if选择结构的条件时,才会判断内层if的条件。
else总是与它前面最近的那个缺少else的if配对。
案例如下:
if(score<=10){
if(gender.equals("男")){
System.out.println("进入男子决赛组!");
}else if(gender.equals("女")){
System.out.println("进入女子决赛组!");
}
}else{
System.out.println("淘汰!");
}
switch选择结构
优点:
可以更好的解决等值判断问题
语法格式:
switch(表达式){
case 常量1:
//代码块1;
break;
case 常量2:
//代码块2;
break;
......
default:
//代码块n;
break;
}
案例如下:
int mingCi=1;
input.mingCi=new inpuit
swicth(mingCi){
case 1;
System.out.println("参加麻省理工大学组织的一个月夏令营");
break;
case 2;
System.out.priintln("奖励惠普笔记本电脑一部");
break;
case 3;
System.out.println("奖励移动硬盘一个");
break;
default:System.out.println("没有任何奖励!");
break;
}
注意:以上switch、case、default、break都是Java关键字。
switch:表示"开关",开关就是switch关键字后面小括号里的值,小括号里要放一个整型变量(表达式)或字符型变量(表达式)。
case:表示情况,case后必须是一个整型或字符型的常量,通常为一个固定的字符,数字,如8、'a'等。case块可以有多个,顺序可以改变,但是每个case 后常量的值必须各不相同。
default:表示默认,其他情况都不满足。default后要紧跟冒号。default块和case块的先后顺序可以变动,不会影响程序的执行结果,通常default块放在末尾,也可以省略。
break:表示停止,即跳出当前结构。不可省略break。省略break后,当某个case后的常量值与switch后小括号中的值相匹配时,执行该case的代码,后面的case就不再进行条件判断,而直接进行后面所有case块中的代码,直到遇见break结束。
循环结构:
while循环结构:
语法结构:
while(循环条件:是一个表达式,它的值为boolean类型,即true或false,如:i>=100){
循环操作又叫循环体
}
执行顺序:
先声明并初始化循环变量。再判断循环条件是否满足,如果满足则执行循环操作,否则退出循环。然后执行完循环操作后,再次判断循环条件,决定继续执行循环或退出。
while特点:
第一次判断循环条件就不满足的话,就会直接跳出循环,循环操作一遍都不会执行。这就是while循环的特点:先判断后执行!
案例如下:
int count=1;//定义声明 while(count<=50){//先判断 System.out.println("打印第"+count+"份试卷");//再执行 count++; }
使用while循环结构解决问题的步骤如下:
1.分析循环条件和循环操作
2.套用while语法写出代码
3.检查循环能否退出,避免出现死循环。
do-while循环结构:
do-while特点:
无论如何循环都先执行一次,再判断条件,决定是否继续执行。
do-while语法:
do{
循环操作
}while(循环条件);
案例如下:
int i=1;
do{
System.out.println("好好学习");
i=i+1;
}while(i<=100);
do-while循环执行顺序一般如下:
声明并初始化循环变量,执行一遍循环操作,判断循环条件,如果循环条件满足,则循环继续执行,否则退出循环。检查循环能否退出,防止死循环。
拓展:跳转语句
break:在循环结构中,break 语句用于终止某个循环,使程序跳到循环体外的下一条语句,在循环中位于break后的语句不再执行,循环终止。break语句不仅可以用在while和dou-while循环结构中,也可也用再for循环中break语句通常与if条件语句一起使用。
continue:
在执行循环的时候,可能遇到在循环中,不执行完所有的循环体,就跳出本次循环进入下一次循环,而continue语句就是用于跳出本次循环,进入下一次循环的语句。
for循环:
使用情形:
在解决有固定循环次数的问题时,可首选for循环结构。
循环结构的四部分:
初始部分,循环条件,循环体,迭代部分。
语法格式:
for(表达式1;表达式2;表达式3){
//循环体
}
表达式1:一般为赋值语句,功能是为循环变量赋初始值;如:int i=0;
表达式2:一般为条件语句,循环结构的循环条件。如:i<100;
表达式3:一般为赋值语句,通常用++或--运算符,循环结构的迭代部分,通常用来修改循环变量。如:i++;
执行结构顺序:
1.执行初始部分
2.进行循环条件判断
3.根据循环条件判断结果,如果为true,执行循环体,为false退出循环后面不再执行
4.执行迭代部分,改变循环变量值
5.依次重复步骤2-4,直到退出for循环.
案例如下:
//循环输入某同学结业考试的5门课的成绩,并计算平均分。
//1.明确循环条件和循环操作,这里的循环条件是“循环次数不足5次,继续执行”,循环操作是“录入成绩,并计算成绩之和。”2.套用for语法写出代码3.检查循环是否能够退出。
public static void main(String []args){
int score;//每门成绩
int sum;//成绩之和
double avg;//平均分
Scanner input=new Scanner(System.in);
System.out.println("学生姓名:");
String name=input.next();
for(int i=0;i<5;i++){
System.out.println("请输入5门功课中第"+(i+1)+"门课的成绩:");
score=input.nextInt();//录入成绩
sum=sum+score;//计算成绩和
}
avg=(double)sum/5;
System.out.println(name+"的平均分是:"+avg);
}
案例分析:
1."int i=0;"是初始部分,声明循环变量i,用来记录循环次数。
2."i<5"是循环条件。
3."i++"是迭代部分,更新循环变量的值。
4.循环体为"录入成绩,并累加求和"
总结:for循环中各部分的执行顺序,会发现表达式1只执行一次,表达式2和3可执行多次,循环体可能执行多次,也可能一次不执行。
for循环注意事项:
for循环中的三个表达式都可省略,但是其后的分号不可省略。如果省略,要注意保证循环能够正常进行。
1.省略“表达式1”
for(;i<10;i++);
这种情况需要在for循环语句前给循环变量赋值,如下:
int i=0;
for(;i<10;i++)
2.省略“表达式2”
for(int i=0;;i++);
这种情况是添加表达式2,或者是在循环体中使用break强制跳出循环结构。否则将会变成死循环,不判断条件,循环将无终止。
3.省略“表达式3”
for(int i=0;i<10; )
这种情况是即不改变循环变量的值,也会出现“死循环”,修改方法就是在循环体中加入循环变量i++;这样就可正常运行。
4.省略三个表达式
for(;;)
语法无错,逻辑不通,参考上面三种修改方法即可。
循环语句总结及区别:
1.语法不同
while(条件){
//循环体
}
do{
循环体
}while(条件);
for(初始化;判断条件 ;迭代){
//循环体
}
2.执行顺序不同:
while循环结构:先进行条件判断,再执行循环体,如果条件不成立,退出循环。
do-while循环结构:先执行循环体,再进行条件判断,循环体至少执行一次。
for循环结构:先执行初始化部分,再判断条件,然后执行循环体,最后进行迭代部分的计算,如果条件不成立,跳出循环。
3.使用情况不同:
在面对 的问题是,循环次数确定的情况下时一般采用for循环,对于循环次数不确定的情况下,通常用while和do-while循环结构。
拓展:多重循环的使用
二重循环:
简单说二重循环是循环体内又包含了另一个完整的循环结构,前面学到的三种循环结构可以互相嵌套,即一个循环要完整的包括另一个循环结构。以下四种是合法的嵌套结构:
//while与while while(循环条件1){ //循环操作1 while(循环条件2){ //循环操作2 } } //do-while与do-while do{ //循环操作1 do{ //循环操作2 }while(循环条件1); }while(循环条件2); //for与for for(循环条件1){ //循环操作1 for(循环条件2){ //循环操作2 } } //while与for while(循环条件1){ //循环操作1 for(循环条件2){ //循环操作2 } }
注意:上面的四种形式中,循环条件1和循环操作1对应外层循环,循环条件2和循环操作2对应的循环为内层循环。内层循环结束后才会执行外层循环的语句,在二重循环中,外层循环变量变换一次,内层循环就要从开始到结束执行一遍。break:结束内层循环,外层循环不受影响,continue:结束内层循环的本次,执行内层循环的下次循环。
案例如下:
//利用二重循环解决计算3个班级平均分问题
//第一个班的成绩:60,85,96,65平均分:76.5
//第二个班的成绩:88,74,76,84平均分:80.5
//第三个班的成绩:66,78,89,79平均分:78.0
import java .util.Scanner
public static void mai(String[]args){
int[]score=new int[4];
int classNum=3;
double average=0.0;
//循环输入的学员成绩
Scanner input =new Scanner(System.in);
for(int i=0;i<classNum;i++){
sum=0.0;
System.out.println("请输入"+(i+1)+"个班级的成绩");
for(int j=0;j<score.length;j++){
System.out.println("第"+(j+1)+"个学员的成绩:");
score[j]=input.nextInt();
sum=sum+score[j];
}
average=sum/score.length;//计算平均分
System.out.println("第"+(i+1)+"个班级参赛学员的平均分是:"+average+"\n");
}
}
关于二重循环简单打印图案:
public static void main(String[]args){
System.out.println("打印矩形");
for(int i=0;i<5;i++)
}