day02_键盘录入&运算符

day02

1、键盘录入

我们是使用了JDK给我们提供的一个类,Scanner,可以实现从键盘输入数据到程序中
使用步骤
1、导包

		import java.util.Scanner;

​ 2、创建对象

		Scanner sc = new  Scanner(System.in);

​ 3、接收数据
​ 整数

		int a = sc.nextInt();

​ 小数

		double b = sc.nextDouble();

​ 字符串

		String s =sc.next();

2 运算符

2.1算术运算符

分类

+ - * /

注意事项

“/”
整数和整数相除,只能得到整数,要想得到小数,必须要有小数参与
“%”
表示两个数相除的余数

表达式的类型提升问题:

	一个表达式中,包含多个数据类型,结果就是最高的数据类型
	byte short char 在运算的过程会默认提升为int 

字符的+操作

拿的是计算机底层对应的ASCII值进行运算

字符串的拼接

串前运算,串后拼接

2.2赋值运算符

分类

​ 基本赋值运算符

​		=

​ 拓展的赋值运算符
​ 分类

		+=  -=  *=  /=  %=

​ 执行流程
​ a += b ; 先把符号左边的变量 和 符号右边的数据先进行运算,然后再把结果赋值给左边的变量
​ 特点
​ 隐含了强制类型转换

2.3 自增自减运算符

分类:

自增
	++
	表示变量本身+1
自减
	--
	表示变量本身-1

不同情况下的执行流程:

单独运算
	a++;  a--;  ++a;  --a;
	自增/自减, 在变量的前面和后面是没有区别的
参与操作
	自增在前
		先加后用
	自增在后
		先用后加

2.4 关系运算符

分类:

	==   !=   >    >=    <   <=

执行的结果
都是布尔类型
== 和 = 的区别

==  表示是否相等,用于判断
 =  表示赋值

2.5 逻辑运算符

作用
用来连接多个关系表达式
分类
&&
多个条件需要同时满足
有false则false
左边如果为false,右边就不执行了
||
多个条件,只需要满足其中一个
有true则true
如果左边为true, 右边就不执行了
!
取反

2.6 三元运算符

格式

  • 数据类型 变量名 = 关系表达式 ? 表达式1 : 表达式2;

执行流程

  • 先执行关系表达式,如果判断的结果为true, 则把表达式1的结果返回给变量接收,如果判断结果为false,则把表达式2的结果返回给变量接收
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
#include <iostream> #include <cstdio> #include <cstring> using namespace std; const char* Haab_month_name[] = {"pop", "no", "zip", "zotz", "tzec", "xul", "yoxkin", "mol", "chen", "yax", "zac", "ceh", "mac", "kankin", "muan", "pax", "koyab", "cumhu", "uayet"}; int Tzolkin_day_number[20] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 2, 3, 4, 5, 6, 7}; const char *Tzolkin_day_name[] = {"imix", "ik", "akbal", "kan", "chicchan", "cimi", "manik", "lamat", "muluk", "ok", "chuen", "eb", "ben", "ix", "mem", "cib", "caban", "eznab", "canac", "ahau"}; struct Date { int day; int month; int year; }; // 把哈布历转换成天数 int haab_to_days(int day, const char* month, int year) { int total_days = day + (year * 365); int month_index; for (month_index = 0; month_index < 19; ++month_index) { if (strcmp(Haab_month_name[month_index], month) == 0) { break; } } total_days += month_index * 20; return total_days; } // 把天数转换成托尔金历 void days_to_tzolkin(int total_days, int* day_number, const char** day_name) { int tzolkin_day_count = total_days % 13; int tzolkin_day_index = tzolkin_day_count - 1; if (tzolkin_day_index < 0) tzolkin_day_index = 12; int tzolkin_day_number = Tzolkin_day_number[tzolkin_day_index]; const char *tzolkin_day_name = Tzolkin_day_name[(total_days % 20)]; *day_number = tzolkin_day_number; *day_name = tzolkin_day_name; } int main() { int N; cin >> N; cout << N << endl; for (int i = 0; i < N; ++i) { Date date; char dot; scanf("%d%c%d%s%d", &date.day, &dot, &date.month, Haab_month_name, &date.year); int total_days = haab_to_days(date.day, Haab_month_name, date.year); int tzolkin_day_number; const char *tzolkin_day_name; days_to_tzolkin(total_days, &tzolkin_day_number, &tzolkin_day_name); printf("%d %s %d\n", tzolkin_day_number, tzolkin_day_name, date.year); } return 0; }
最新发布
06-06
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值