Java中的语句简单概述
一:Java中的输入输出语句
1.输出语句:
输入:System.out.println();
eg:import java.util.Scanner;//导入包/类;java与c的区别
public class input {
public static void main(String[]ages)//main方法;
{
1. System.out.println("请输入你的名字:");输出字符串要加"";
System.out.println("你的练习时间是:");
System.out.println("你的爱好是:");
System.out.println("你的名言是:");
System.out.println("你的薪水是:");}
2.System.out.println("名字"+name+"练习时间"+time+"爱好是"+love+"名言是"+say+"薪水是"+sal);
当“+”两边不全是数字时,进行拼接操作;否则进行运算操作;
2.输入语句:
1.int 型:int+变量名称=myScanner.nextInt();
2.double型:double变量名称=myScanner.nextDouble();
3.string型:String 变量名称=myScanner.next();
4.char型:char变量名称=char gender=myScanner.next().charAt(0);
注意:char与String的特殊写法;
5 eg:以输入kunkun的名字 练习时间 性别 薪水为例
public class input {
public static void main(String[]ages)//main方法;程序入口
{ Scanner myScanner = new Scanner(System.in);//创建scanner的对象;myscanner就是对象;
int sal=myScanner.nextInt();
double time=myScanner.nextDouble();
String name=myScanner.next();//接受输入的字符串;要输入的数据类型+变量名+对象.next();
char gender=myScanner.next().charAt(0);
System.out.println("名字"+name+"练习时间"+time+"性别是"+gender+"薪水是"+sal);
}
}
3.条件语句:(包含if语句和switch语句)
一.if语句:
1.if
格式: if(条件语句){
执行语句;
}
1.条件语句的结果为true 或者false;
2.若条件表达式结果为true则进入执行语句执行之后退出if语句;
若条件表达式结果为false则不进行执行语句直接退出if语句;
3.eg;//1.简单if判断
import java.util.Scanner;
public class ifelse {
public static void main(String[]ages)
{
Scanner myScanner=new Scanner(System.in);
System.out.println("请输入你的年龄");
int year=myScanner.nextInt();
if(year>=18)//条件表达式;结果只有true或者false;
{
System.out.println("小伙子年满18了,进去吧,下次好好做人");//执行语句;
}
}
}
2.if-else双分支语句;
格式:
if(条件表达式)//结果只有true或者false;
{
语句1;
}else
{
语句2;
}
解释:若条件表达式为true则执行语句1,之后退出if-else语句;
若条件表达式为false则执行语句2,之后退出if-else语句;
//简单的单分支判断
eg:import java.util.Scanner;
public class ifelse {
public static void main(String[]ages)
{
Scanner myScanner=new Scanner(System.in);
System.out.println("请输入你的年龄");
int year=myScanner.nextInt();//year用来接收输入的值;
if(year>=18)//将year与18进行判断
{
System.out.println("小伙子年满18了,进去吧,以后好好做人");//若判断结果为真执行它;
}else{
System.out.println("放你一马,缴纳1000000");//若判断结果为假执行它;
}
}
}
3.if-else多分支
格式:
if()
{
}else if()
{
}...
{
}else{
}
eg:4.多分支练习1//输入保国同志的信用分;
import java.util.Scanner;
public class ifelse {
public static void main(String[] ages) {
Scanner myScanner = new Scanner(System.in);
double a = 0;
System.out.println("输入混元8极门保国同志的信誉分1-100");
double grade = myScanner.nextDouble();
if (grade >= 1 && grade <= 100) {
if (grade == 100) {
System.out.println("混元八极门保国是个好同志");
} else if (grade > 80 && grade < 100) {
System.out.println("勉强是个好同志");
} else if (grade >= 60 && grade <= 80) {
System.out.println("中了闪电5连鞭,不是好同志");
} else {
System.out.println("信誉分打残,大意了没有闪");
}
}else{
System.out.println("保国同志没有这么高分,重新输入");
}
}
}
二:Switch语句
1.格式:
switch(表达式)
{
case 常量:
语句1;
break;
case 常量:
语句2;
break;
.....
default:
语句;
break;
}
2.解释:
a:表达式只可为byte,short,char,int类型;
b:表达式类型与常量类型必须一致或可以相互转换;
c:break:遇到break,switch语句终止,之后跳出switch语句(而不是整个程序,若switch后还有其它程序则继续执行其它程序);
d:执行:1.表达式会返回一个值,若表达式返回的值等于常量1(n)执行语句1(n),之后遇到break跳出switch程序;
2.若表达是返回的值都不等于常量1,常量2....常量(n),则进入default,执行default语句,之后遇到break,结束 switch语句;
3.default 中的break可以没有,最后会自动结束switch语句;
4.可以没有default语句块,switch语句最后仍然可以结束;
5."穿透":当没有break时,程序会一直执行,直至遇到break后跳出switch语句;
2.eg1.://输入a,b,c...转化成星期(简写3个其它同理),当超出范围后输出no;
import java.util.Scanner;
public class switch0 {
public static void main(String[]ages)
{
Scanner myScanner=new Scanner(System.in);
System.out.println("请输入:");
char month=myScanner.next().charAt(0);
switch (month) {
case 'a'://case后只可为常量或常量表达式
System.out.println("星期一");
break;
case 'b':
System.out.println("星期二");
break;
case 'c':
System.out.println("星期三");
break;
default:
System.out.println("no");
}
}
}
eg2.//"switch中的穿透":输入月份转换成季节;
import java.util.Scanner;
public class switch0{
public static void main(String[]ages)
{
Scanner myScanner=new Scanner(System.in);
System.out.println("请输入月份:");
int month=myScanner.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;
}
4.循环语句;(重点)
一单重循环:
1.单重for循环:
1.格式:
for(初始化条件;终止条件;循环变量迭代)
{
循环体语句;
}
2.解释:a:循环启动时首先进行循环变量初始化操作;
b:之后循环会与终止条件进行判断且会返回一个布尔值,若返回值为真则执行循环语句,若为假则退出for循环;
c:若为真执行完循环体语句后进行循环变量迭代操作,之后再与终止条件进行判断,仍然会返回一个布尔值,
若返回值为真则....(与b条解释相同),重复循环执行直至退出for循环;
eg1://打印10次字符串;
import java .util.Scanner;
public class efor {
public static void main(String[]ages){
Scanner myScanner=new Scanner(System.in);
String n=myScanner.next();//变量n用于接受字符串的输入
int i;
for(i=0;i<=10;i++)
{
System.out.println(n);//输出字符串;
}
}
}
eg2:
//5.打印:找规律:一列一列看,第一列:0-5,第二列:5-0;最后结果为固定值5;
/*0+5=5//
1+4=5
2+3=5
3+2=5
4+1=5
5+0=5*/
import java.util.Scanner;
public class efor{
public static void main(String[]ages)
{
int i,j;
int n=5;
for(i=0;i<=n;i++){
System.out.println(i+"+"+(n-i)+"="+"5");
}
}
}
2.while循环
1.格式:
while(表达式)//
{
循环体语句;
}
2.解释:a:while语句与for语句相似,不同的是while:不知道循环多少次;
b:while语句中表达式是循环条件,其结果是一个布尔值
1.若表达式返回值为true则执行循环语句;若一直返回ture则一直执行;
2.若表达式返回值为false则退出循环语句;
eg:
//5.打印40-200之间的所有偶数
import java.util.Scanner;
public class efor{
public static void main(String[]ages)
{
int i=40;//循环变量初始化;
while(i>=40&&i<=200)//判断范围:40-200;
{
if(i%2==0)//循环体:判断偶数
{
System.out.println(i);//若满足条件则输出;
}
i++;//变量迭代,以满足不断循环;
}
}
}
3.do-while循环
1.格式:
do
{
循环体语句;
}while(表达式);
2.解释:
a:do-while与for,while最大区别在于其无论是否满足表达式条件都必定会先执行一次;
b:之后判断循环条件,若表达式返回值为true则继续循环,否则退出do-while循环,循环结束;
eg:
//6.打印1-100;
import java.util.Scanner;
public class efor
{
public static void main(String[]ages)
{
int i=1;
do{
System.out.println(i);
i++;
}while(i<=100);
}
}
eg2:
//7.统计1-200间能被5整除但不能被3整除的数;
import java.util.Scanner;
public class efor{
public static void main(String[]ages)
{
int i=1;//循环变量初始化
do{
if(i%5==0&&i%3!=0)//判断能被5整除但不能被3整除的数
{
System.out.println(i);//输出满足条件的数;
}
i++;//循环变量迭代;
}while(i>=1&&i<=200);
}
}
eg3.如果保国同志不还钱,那坤坤用出坤拳,直到保国喊出”你干吗啊啊啊啊“;
import java.util.Scanner;
public class efor{
public static void main(String[]ages)
{
char answer=' ';//必须先定义类型char接受answer;
Scanner myScanner=new Scanner(System.in);
do{
System.out.println("kunkun使用坤拳打你");
System.out.println("还钱吗");
answer=myScanner.next().charAt(0);//接受输入字符型的值
System.out.println("保国的回答是:"+answer);
}while(answer!='y');//判断条件;
System.out.println("我还钱,你干嘛啊啊啊啊啊啊...");
}
}
.二多重循环
1.以多重for为例(重点!!!)
1.多重for循环:即多个for循环嵌套使用(但一般使用两个,最多不超过三个!)
2.eg1(99乘法表)
public class ManyXunhuan{
public static void main(String[]ages)
{
int i,j;
for (i = 1; i <= 9; i++) {//外循环控制行,从1-9行;
for (j = 1; j <= i; j++) {//内循环依次遍历1-i;
System.out.print(j + "*" + i + "=" + i * j + "\t");//打印
}
System.out.println();//换行;
}
}
}
eg2.//分别输入三个班每5名同学的成绩,并打印三个班成绩的总和,平均分,及格总人数
import java.util.Scanner;
public class ManyXunhuan {
public static void main(String[] ages) {
Scanner myScanner = new Scanner(System.in);
int i, j, count = 0;//定义内部,外部的循环变量
double score, sum = 0, ave = 0;定义变量分别表示成绩总和,平均分及及格人数
System.out.println("请分别输入三个班5名同学的成绩:");//提示输入内容;
for (i = 1; i <= 3; i++) {//外部循环表示1-3班
for (j = 1; j <= 5; j++) {//内部循环表示每个班5名同学的成绩;
score = myScanner.nextDouble();
sum += score;//计算成绩之和;
if (score >= 60) {//判断及格;
count++;//统计及格人数;
}
}
}
double avea = sum / 15;//计算三个班的总的平均分
System.out.println("三个班总分是" + sum + "平均分是" + avea + "三个班及格人数" + count);
}
}
2.打印三角形(经典问题!逐步深入)
1.直角三角形
eg:以5行为例
*//第一行:1个*:
**//第二行:2个*
***//第三行:3个*//->:每一行的*个数随着行号变化而变化;
****//.... : 4个*
*****//....:5个*
public class Dxh{
public static void main(String[]ages)
{
int i,j;
for(i=1;i<=5;i++)//外侧循环控制行数;
{
for(j=1;j<=i;j++)//内层循环控制每行打印*个数,令j<=i;使得每一行的*个数随着行号变化而变化;
{
System.out.print("*");
}
System.out.println(" ");//换行:在内层for循环之外,外层for循环之内;
}
}
}
2.等腰三角形:
eg:以5行为例
* //第一行有4个空格=(总层数-1) 1个*:2*1-1;
* * * // 第二行有3个空格=(总层数-2) 3个*:2*2-1;
* * * * * //第三行有2个空格=(总行数-3) 5个*:2*3-1;
* * * * * * * // 第四行有2个空格=(总行数-4) 7个*:2*4-1;
* * * * * * * * * //第五行有1个空格=(总行数-5) 9个*:2*5-1;
....................... //第i行空格=总行数-i; 第i行*=2*行号-1;
public class Dxh{
public static void main(String[]ages)
{
int i,j,k;
for(i=1;i<=5;i++)
{
for(k=1;k<=5-i;k++)//在输出*之前要输出空格
//找到每一行空格个数与行数的关系(5-i)
{
System.out.print(" ");
}
for(j=1;j<=2*i-1;j++)//找到每一行*个数和行数的关系即(2*i-1)
{
System.out.print("*");//输出*;
}
System.out.println(" ");//换行;
}
}
}
3.空心三角形(在等腰三角形基础上)
eg:以5行为例
* //1.整体与等腰三角形一样,只是中间的*换成了空格;
* * //2.每一行的第一个以及最后一个都为*其它为空格,且最后一行所有都是*;
* * //3.-即添加if语句判断;满足2.;
* *
* * * * * * * * *
public class Dxh{
public static void main(String[]ages)
{
int i,j;
for(i=1;i<=5;i++)
{
for(j=1;j<=5-i;j++)//1.在输出*之前要输出空格
//2.找到每一行空格个数与行数的关系(5-i);
{
System.out.print(" ");//输出空格;
}
for(j=1;j<=2*i-1;j++)//1.之后输出*
//2. 找到每一行*个数和行数的关系即(2*i-1)
{
if(j==1||j==2*i-1||i==5)//!!!!1.控制输出的每一行的第一个以及最后一个为*;
// (j=1:每行的第一个 ,j==2*i-1每行最后一个,i=5:最后一行行号) //2.当i=5时,即令第五行全打印*;
{
System.out.print("*");//输出*;
}else{
System.out.print(" ");//若不是则输出空格,达到空心的效果;
}
}
System.out.println(" ");//换行;
}
}
}