質問編集履歴

1

コード、説明の追記

2018/09/18 16:56

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -171,3 +171,493 @@
171
171
  ###改善したいこと
172
172
 
173
173
  if文の書き方が的確でないため意図しない結果になっていると思うのでどのようにif文を書けばいいかを知りたい。
174
+
175
+
176
+
177
+ ### 現コード
178
+
179
+ ```swift
180
+
181
+ @IBAction func tapNum(_ sender: Any) {
182
+
183
+ //let text = (sender as AnyObject).tag == 10 ? "+" : String((sender as AnyObject).tag)
184
+
185
+ var text: String
186
+
187
+ if (sender as AnyObject).tag == 10 {
188
+
189
+ text = "."
190
+
191
+ }else{
192
+
193
+ text = String((sender as AnyObject).tag)
194
+
195
+ }
196
+
197
+
198
+
199
+ dataSource.upDate(value: text)
200
+
201
+ labelUpdate()
202
+
203
+
204
+
205
+ let num: Double = Double(dataSource.pText)!
206
+
207
+ operation = (sender as AnyObject).tag
208
+
209
+
210
+
211
+ if operation == 0 && (sender as AnyObject).tag != 1 && (sender as AnyObject).tag != 10
212
+
213
+ {
214
+
215
+ if operation == 11
216
+
217
+ {
218
+
219
+ text = String(num + num)
220
+
221
+ }
222
+
223
+ if operation == 12
224
+
225
+ {
226
+
227
+ text = String(num - num)
228
+
229
+ }
230
+
231
+ if operation == 13
232
+
233
+ {
234
+
235
+ text = String(num * num)
236
+
237
+ }
238
+
239
+ if operation == 14
240
+
241
+ {
242
+
243
+ text = String(num / num)
244
+
245
+ }
246
+
247
+ }
248
+
249
+ if operation == 1
250
+
251
+ {
252
+
253
+ if operation == 11
254
+
255
+ {
256
+
257
+ text = String(num + num)
258
+
259
+ }
260
+
261
+ if operation == 12
262
+
263
+ {
264
+
265
+ text = String(num - num)
266
+
267
+ }
268
+
269
+ if operation == 13
270
+
271
+ {
272
+
273
+ text = String(num * num)
274
+
275
+ }
276
+
277
+ if operation == 14
278
+
279
+ {
280
+
281
+ text = String(num / num)
282
+
283
+ }
284
+
285
+ }
286
+
287
+ if operation == 2
288
+
289
+ {
290
+
291
+ if operation == 11
292
+
293
+ {
294
+
295
+ text = String(num + num)
296
+
297
+ }
298
+
299
+ if operation == 12
300
+
301
+ {
302
+
303
+ text = String(num - num)
304
+
305
+ }
306
+
307
+ if operation == 13
308
+
309
+ {
310
+
311
+ text = String(num * num)
312
+
313
+ }
314
+
315
+ if operation == 14
316
+
317
+ {
318
+
319
+ text = String(num / num)
320
+
321
+ }
322
+
323
+ }
324
+
325
+ if operation == 3
326
+
327
+ {
328
+
329
+ if operation == 11
330
+
331
+ {
332
+
333
+ text = String(num + num)
334
+
335
+ }
336
+
337
+ if operation == 12
338
+
339
+ {
340
+
341
+ text = String(num - num)
342
+
343
+ }
344
+
345
+ if operation == 13
346
+
347
+ {
348
+
349
+ text = String(num * num)
350
+
351
+ }
352
+
353
+ if operation == 14
354
+
355
+ {
356
+
357
+ text = String(num / num)
358
+
359
+ }
360
+
361
+ }
362
+
363
+ if operation == 4
364
+
365
+ {
366
+
367
+ if operation == 11
368
+
369
+ {
370
+
371
+ text = String(num + num)
372
+
373
+ }
374
+
375
+ if operation == 12
376
+
377
+ {
378
+
379
+ text = String(num - num)
380
+
381
+ }
382
+
383
+ if operation == 13
384
+
385
+ {
386
+
387
+ text = String(num * num)
388
+
389
+ }
390
+
391
+ if operation == 14
392
+
393
+ {
394
+
395
+ text = String(num / num)
396
+
397
+ }
398
+
399
+ }
400
+
401
+ if operation == 5
402
+
403
+ {
404
+
405
+ if operation == 11
406
+
407
+ {
408
+
409
+ text = String(num + num)
410
+
411
+ }
412
+
413
+ if operation == 12
414
+
415
+ {
416
+
417
+ text = String(num - num)
418
+
419
+ }
420
+
421
+ if operation == 13
422
+
423
+ {
424
+
425
+ text = String(num * num)
426
+
427
+ }
428
+
429
+ if operation == 14
430
+
431
+ {
432
+
433
+ text = String(num / num)
434
+
435
+ }
436
+
437
+ }
438
+
439
+ if operation == 6
440
+
441
+ {
442
+
443
+ if operation == 11
444
+
445
+ {
446
+
447
+ text = String(num + num)
448
+
449
+ }
450
+
451
+ if operation == 12
452
+
453
+ {
454
+
455
+ text = String(num - num)
456
+
457
+ }
458
+
459
+ if operation == 13
460
+
461
+ {
462
+
463
+ text = String(num * num)
464
+
465
+ }
466
+
467
+ if operation == 14
468
+
469
+ {
470
+
471
+ text = String(num / num)
472
+
473
+ }
474
+
475
+ }
476
+
477
+ if operation == 7
478
+
479
+ {
480
+
481
+ if operation == 11
482
+
483
+ {
484
+
485
+ text = String(num + num)
486
+
487
+ }
488
+
489
+ if operation == 12
490
+
491
+ {
492
+
493
+ text = String(num - num)
494
+
495
+ }
496
+
497
+ if operation == 13
498
+
499
+ {
500
+
501
+ text = String(num * num)
502
+
503
+ }
504
+
505
+ if operation == 14
506
+
507
+ {
508
+
509
+ text = String(num / num)
510
+
511
+ }
512
+
513
+ }
514
+
515
+ if operation == 8
516
+
517
+ {
518
+
519
+ if operation == 11
520
+
521
+ {
522
+
523
+ text = String(num + num)
524
+
525
+ }
526
+
527
+ if operation == 12
528
+
529
+ {
530
+
531
+ text = String(num - num)
532
+
533
+ }
534
+
535
+ if operation == 13
536
+
537
+ {
538
+
539
+ text = String(num * num)
540
+
541
+ }
542
+
543
+ if operation == 14
544
+
545
+ {
546
+
547
+ text = String(num / num)
548
+
549
+ }
550
+
551
+ }
552
+
553
+ if operation == 9
554
+
555
+ {
556
+
557
+ if operation == 11
558
+
559
+ {
560
+
561
+ text = String(num + num)
562
+
563
+ }
564
+
565
+ if operation == 12
566
+
567
+ {
568
+
569
+ text = String(num - num)
570
+
571
+ }
572
+
573
+ if operation == 13
574
+
575
+ {
576
+
577
+ text = String(num * num)
578
+
579
+ }
580
+
581
+ if operation == 14
582
+
583
+ {
584
+
585
+ text = String(num / num)
586
+
587
+ }
588
+
589
+ }
590
+
591
+
592
+
593
+ //dataSource.upDate(value: text)
594
+
595
+ //labelUpdate()
596
+
597
+ }
598
+
599
+
600
+
601
+ @IBAction func calcItem(_ sender: Any) {
602
+
603
+
604
+
605
+ let text: String
606
+
607
+
608
+
609
+ if (sender as AnyObject).tag == 11 //Plus
610
+
611
+ {
612
+
613
+ text = "+"
614
+
615
+ }
616
+
617
+ else if (sender as AnyObject).tag == 12 //Multiply
618
+
619
+ {
620
+
621
+ text = "-"
622
+
623
+ }
624
+
625
+ else if (sender as AnyObject).tag == 13 //Minus
626
+
627
+ {
628
+
629
+ text = "×"
630
+
631
+ }
632
+
633
+ else if (sender as AnyObject).tag == 14//Divide
634
+
635
+ {
636
+
637
+ text = "÷"
638
+
639
+ }
640
+
641
+ else{
642
+
643
+ text = String((sender as AnyObject).tag)
644
+
645
+ }
646
+
647
+
648
+
649
+ dataSource.upDate(value: text)
650
+
651
+ labelUpdate()
652
+
653
+
654
+
655
+ }
656
+
657
+ ```
658
+
659
+
660
+
661
+ 色々試してみましたがどうしても意図したタイミングで計算されません。
662
+
663
+ 処理の流れやどこを直せばいいか知りたいです。