Java基础题型汇总
1.运算符
//短路测试
//例如:
int a = 7;
int b = 6;
System.out.println(++a<9||++b<9);
System.out.println(a);
System.out.println(b);
//这里由于短路,a=8,b还是=6,因为前面的对了,后面的就不用算了结果是true.
//两个数据位置交换
int num1 = 1;
int num2 = 2;
int num3 = num1;//中间借助一下这个赋值进行交换.
num1 = num2;
num2 = num3;
System.out.println("此时num1与num2已经进行了交换"+num1+num2);
//综合应用题:输入卡号,并求出卡号的个十百千位各是数字几?
public static void main(String[] args) {
//输入一个四位会员卡号,控制台计算会员卡号的各位数,并计算数之和。
//Scanner 用法先开一个口子
Scanner input = new Scanner(System.in);
//输出语句请输入一个四位会员卡号
System.out.println("请输入一个四位会员卡号:");
//输入的卡号是整数用int 与nextInt input获得输入的卡号并且输出
int no =input.nextInt();
//输出卡号
System.out.println("会员卡号是:"+no);
//8369 取出个十百千的数值
int num1=no%10;//结果是9
int num2=no/10%10;//结果是6
int num3=no/100%10;//结果是3
int num4=no/1000;//结果是8
int num5=num1+num2+num3+num4;//结果是26
//用余10的方法拿到个位
System.out.println("卡号的个位数:"+num1);
//用先除10再对商取余拿到十位
System.out.println("卡号的十位数:"+num2);
//用先除100再对商取余拿到百位
System.out.println("卡号的百位数"+num3);
//用除1000的方法拿到千位
System.out.println("卡号的千位数"+num4);
System.out.println("会员卡号个位数:"+num1+"十位数:"+num2+"百位数:"+num3+"千位数:"+num4);
System.out.println("卡号四位总数:"+num5);
}
}
2.选择结构
//利用三目运算符或者if选择排序判断三个整数大小
import java.util.Scanner;
public class Test {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个整数:");
int x = sc.nextInt();
System.out.println("请输入第二个整数:");
int y = sc.nextInt();
System.out.println("请输入第三个整数:");
int z = sc.nextInt();
}
//判断两个数,将最小的数往后排,如果不符合条件
//数据不变,进入下一个循环.
//两两相较,将小的数排到后面.
if(x>y) {//判断
int temp =x;//调换位置
x = y;
y = temp;
}
if(x>z) {
int w =x;
zhengShu1 = z;
zhengShu3 = w;
}
if(y>z) {
int q =y;
y = z;
y = q;
}
System.out.println(zhengShu1);
System.out.println(zhengShu2);
System.out.println(zhengShu3);
//声明三个变量 分别是 最小值 中间值 最大值
int min,mid,max;
System.out.println(" 录入的数字是:" + x + "," + y + "," + z);
//确定最小值跟最大值
min = x >= y ? (y >= z ? z : y):(x >= z ? z : x);
max = x >= y ? (x >= z ? x : z) :(y >= z ? y : z);
//确定中间数
// mid = x < max && x > min ? x : (y < max && y > min ? y : z);//1 1 3 出错,1 3 3
// mid = (x == min || x == max) ? (y == min || y == max ? z :y) : x; //错误的判断方法
mid= x > y ? ( y > z ? y : ( x > z ? z : x )) : ( y < z ? y : (x > z ? x : z)); //方法一
// mid = (x + y + z) - (min + max); //方法二
System.out.println(" 排序的数字是:" + min + "," + mid + "," + max);
//题目:学校举行运动会,百米赛跑跑入10秒内的学生有资格进决赛,根据性别分别进入男子组和女子
public static void main(String[] args) {
// 跑进10秒进学赛。进了决赛根据性别进行分组
Scanner input = new Scanner(System.in);
System.out.println("请输入跑步成绩");
double time =input.nextDouble();
System.out.println("请输入性别");
String sex =input.next();
if(time<=10) { //--数值用==,>=,<=,输出要么true要么false
if(sex.equals("男")) { //--这里注意字符串之间的比较用.equals
System.out.println("进入男子决赛");
}else{
System.out.println("进入女子决赛");
}
}else {
System.out.println("未进入决赛");
}
}
//例题:请根据输入的条件判断所属道家宗派
import java.util.*;
public class dao1{}
public static void main(String[] args){
//这里有快速导包的快捷键:ctrl+shift+o
Scanner input = new Scanner(System.in);
System.out.println("请输入你的种族")
String dao1 = input.next();
switch (dao1) { //switch的s要小写
case "人":
System.out.println("人宗"); //这里的case可以有无限多个
break; //注意以break结尾.
case "神":
System.out.println("天宗");
break;
case "鬼":
System.out.println("地宗");
break;
default:
System.out.println("俗家弟子");
}
System.out.println("您是"+dao1);
}
}
// 典型例题:输入小明考试成绩,根据成绩区间输出奖励的东西100:车 90--100:电脑 60--80:手机 else:没有
public static void main(String[] args){ //导包就不写了
Scanner xm = new Scanner(System.in)
int score = xm.nextInt();
switch(score/10){ //这里主要是除以10的这个方法.
case 10:
System.out.println("车")
break;
case 9:
System.out.println("电脑")
break;
case 6: //这里的678后面无break直接一起输出
case 7:
case 8:
System.out.println("手机")
break;
default:
System.out.println("啥也没有")
break;
}
}
3.循环结构
//复杂例题(输出学生学习任务)
public static void main(String[] args) {
String answer;//表示是否合格
//Scanner 输入n或者y来判断下面的表达式
Scanner input = new Scanner(System.in);
System.out.println("合格了吗");
answer = input.next();
while("n".equals(answer))
//或者是while(!"y".equals(answer))
//意为answer只要不是y就输出
{
//执行学习任务
System.out.println("上午学习");
System.out.println("下午学习");
//每次执行完学习,需要验证一下,确保其能跳出循环------重点
System.out.println("完成了吗");
//如果是完成y跳出循环
answer = input.next();
}
//输出跳出循环结束
System.out.println("完成学习");
}
}
// 例题:老师让小明先编写程序,然后再让他编写程序,合格的话就不用写
//如果不合格就继续编写.
import java.util.*;
public class Test {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String answer;
do{
System.out.print("上机编写程序");
System.out.print("是否合格?(y/n)");
answer = input.next();
}while(!"y".equals(answer));
//!"y"=="n"用这两个都可以
System.out.println("恭喜合格");
}
}
// 例题:利用for循环输入某同学结业考试的5门课成绩,并计算平均分.
import java.util.*;
public class Test ;
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("输入学生姓名:");
name = input.next();
int sum = 0;//这个定义必须写在循环外面,因为循环外也要用到.
for(int i=1;i<=5;i++){
System.out.println("请输入五门课中第"+i+"门课的成绩:");
int report = input.nextInt();//这个可以不用在循环外定义,循环获得输入值.
sum += report;//每门课的成绩都要累加在sum值中,用+=符或者直接sum=sum+report
}
double avg = sum/5;//利用循环外的定义,求平均数
System.out.println(name+"的平均成绩"+avg);
}
}
// 例题2:打印加法表
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个值:");
int num = input.nextInt();
int num1;
int num2;
System.out.println("根据这个值可以输出以下加法表:");
//num的判断条件之间用||(),&&()来连接,其他的用,连接 这个题只能写在一个for循环里
for (num1 = 0, num2 = num; num1 <= num||num2>=0; num1++, num2--) {
System.out.println(num1 + " + " + num2 + " = " + (num1 + num2));
}
}
// 例题3:计算100以内偶数和
public class Test03 {
public static void main(String[] args) {
int num;
int sum=0;//这里必须另外声明一个变量!!!!!!!!!!!!!!!!! 艹
// for (num = 1; num <= 100; num++) {
// if (num % 2 == 0) { //for循环可以套if选择结构,这里判断是否是偶数
// sum += num;
// }
// }
for(num=2;num % 2 == 0&&num<=100;num+=2) {
sum+=num; //这样一样可以
}
System.out.println(sum);
}
//巩固习题
//1.用户录入一个整数,是1就输出,否则自减,并输出自减后的结果.
import java.util.*;
public class test{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int zheng = input.nextInt();
if(zheng==1){ //首先如果输入的是1,则直接输出,注意等于是==
System.out.println(zheng);
}else{ //如果不是1的话走else,输出自减后的结果
zheng--;
System.out.println(zheng);
}
}
}
//从控制台输入一个数n,使用for循环实现求n!(n的阶乘)
//n!=n*(n-2)*(n-1)*...*n
//实现N!求和
import java.util.*;
public class test{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int num = input.nextInt();
int x;
int y = 1;//这里必须赋值条件为1,0不行,因为0乘以任何数都为0
int z = 0;
for(x=1;x<=num;x++){//1:1*1/ 2:2*1*1/ 3:3*2*1*1/ 4:4*3*2*1*1规律:后乘以前
//y=num*(num-x)*1;
y *= n;//n!
z += y;//n!求和
y += y;
}
System.out.println(y);//阶乘
System.out.println(z);//各阶乘的和
//打印一个平行四边形
1 public static void main(String[] args){
2 for(int a=1;a<=5;a++){
3 for(int b=1;b<=5-a;b++){
4 System.out.print(" ");
5 }
6 for(int b=1;b<=5;b++){
7 System.out.print("*")
8 }
9 System.out.println();
10 }
11 }
//打印一个三角形:与上面的1--5行代码相同部分不写了
for(int b=1;b<=2*a-1;b++){
System.out.print("*")
}Syso...
//break:输入某学生某五科成绩,输入负数时提示输入错误,并且计算平均分
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入你的姓名");
String name = input.next();
// 做一个标识,检查用户输入时,输入是否有误 true代表无误 变为false则为输入有误
boolean flag = true;
double sum = 0;
for (int i = 1; i <= 5; i++) {
System.out.println("请输入第" + i + "门功课的成绩:");
double fen = input.nextDouble();
if (fen < 0) { // 如果录入为负,停止录入并提示
System.out.println("输入的数值不符合规定。");
flag = false;// 不符合规定时,将标识变为false,因为这里是赋值,所以不用"=="
break;// break跳出循环之后会继续输出循环外的语句
}
sum += fen;//总成绩
}
//在循环外写一个选择结构,在输入正确的情况下输出平均值.
if (flag == true) {
double avg = sum / 5;
System.out.println(name + "平均成绩为" + avg);
}
}