Вот более портативная версия (просто для удовольствия, в вашем случае это не обязательно):
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from subprocess import Popen, PIPE, STDOUT
try:
from subprocess import DEVNULL # py3k
except ImportError:
import os
DEVNULL = open(os.devnull, 'wb')
text = u"René Descartes"
p = Popen(['espeak', '-b', '1'], stdin=PIPE, stdout=DEVNULL, stderr=STDOUT)
p.communicate(text.encode('utf-8'))
assert p.returncode == 0 # use appropriate for your program error handling here
Добро пожаловать в переполнение стека!
Одним из способов использования условий в Java без требования оператора if является использование тернарного оператора Java , '?'.
Это действует как переключатель истина / ложь, например:
int three = 3;
System.out.println((three > 2) ? "greater" : "less");
Будет печатать
greater
, как он действует как condition ? true : false
[119 ]
В вашем примере используйте его, чтобы проверить, больше ли «toonies», чем 1, и затем выведите «toonies», если true, или «toonie», если false.
Поскольку вы используете структуру решения и не хотите использовать if, используйте петли for
и определите детали каждой монеты:
import java.util.Scanner;
public class ModQuestions {
public static void main(String []args){
System.out.println("Enter a number: ");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
// coinTypes contain the number to be divided for, singular and plural names for each type of coin
String[][] coinTypes = {{"200", "toony", "toonies"}, {"100", "loony", "loonies"}, {"25", "quarter", "quarters"}, {"10", "dime", "dimes"}, {"5", "nickel", "nickels"}, {"1", "penny", "pennies"}};
for(String[] coin : coinTypes) {
int convertedCoin = (n / Integer.parseInt(coin[0]));
if(convertedCoin > 0) // this is just to check if the value is higher then 0, if not, nothing is printed
System.out.println("That is " + convertedCoin + " " + (convertedCoin > 1 ? coin[2] : coin[1]));
}
}
}
Рабочий пример здесь [112 ].